powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / проверить наличие класса (по аналогии function_exists)
6 сообщений из 6, страница 1 из 1
проверить наличие класса (по аналогии function_exists)
    #35578646
Фотография Пионэр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверить наличие функции (перед её вызовом) довольно просто:

Код: plaintext
1.
2.
3.
4.
5.
$name = 'myFunction';
if (function_exists($name))
{
  $name();
}

Хотелось бы таким же тривиальным образом проверить наличие класса перед его созданием...
Кто как решает эту задачу?

Напрашивается вероятное решение - подгружать классы по мере надобности и делать проверку на наличие файла:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$class_name = ''
$path = 'my:/path/to/inc/'.$class_name.'.inc';
if (include($path))
{
  $test = ':)'; 
  $MyClass = new $class_name();
}
else
{
  $test = '8[]';
}
...
Рейтинг: 0 / 0
проверить наличие класса (по аналогии function_exists)
    #35578727
GoraZZio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
class_exists
(PHP  4 , PHP  5 )

class_exists -- Checks if the class has been defined
Description
bool class_exists ( string class_name [, bool autoload] )


This function checks if the given class have been defined. 

Parameters


class_name
The class name 

autoload
Whether to call __autoload or not by default 


Return Values
Returns TRUE if class_name is a defined class, FALSE otherwise. 

ChangeLog


Version Description 
 5 . 0 . 0  The autoload was added.  



Examples
Example  1 . class_exists() example

<?php
// Check the class exists before trying to use it
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>  
 
Example  2 . autoload parameter example

<?php
function __autoload($class)
{
    include($class . '.php');

    // Check to see if the include declared the class
    if (!class_exists($class, false)) {
        trigger_error("Unable to load class: $class", E_USER_WARNING);
    }
}

if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>
...
Рейтинг: 0 / 0
проверить наличие класса (по аналогии function_exists)
    #35578968
Фотография Пионэр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гхм...
Ларчик, оказывается, не был заперт вовсе ))

Спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
проверить наличие класса (по аналогии function_exists)
    #38848819
PHP5555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да не подходит функция class_exists, она проверяет если класс был объявлен, а человек спросил как проверить есть ли в коде прописанное название класса.
...
Рейтинг: 0 / 0
проверить наличие класса (по аналогии function_exists)
    #38848878
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHP5555Да не подходит функция class_exists, она проверяет если класс был объявлен, а человек спросил как проверить есть ли в коде прописанное название класса.

да вообщето подходит.

1)он написал, по аналогии функ_экзист
2)у этой функции есть второй параметр.
3)а что имеется ввиду под словом, есть ли в коде прописанное название класса? бесмыслица!
...
Рейтинг: 0 / 0
проверить наличие класса (по аналогии function_exists)
    #38849061
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex5646574987654533)а что имеется ввиду под словом, есть ли в коде прописанное название класса? бесмыслица!Вот что он имел ввиду :) $a = new $b();
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / проверить наличие класса (по аналогии function_exists)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]