Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / проверить наличие класса (по аналогии function_exists) / 6 сообщений из 6, страница 1 из 1
06.10.2008, 17:01
    #35578646
Пионэр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверить наличие класса (по аналогии function_exists)
Проверить наличие функции (перед её вызовом) довольно просто:

Код: 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
06.10.2008, 17:29
    #35578727
GoraZZio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверить наличие класса (по аналогии function_exists)
Код: 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
06.10.2008, 18:46
    #35578968
Пионэр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверить наличие класса (по аналогии function_exists)
Гхм...
Ларчик, оказывается, не был заперт вовсе ))

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

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

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


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