[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: instanceof
Страницы: 1, 2
Invis1ble
Всем привет.
В коде имя класса генерируется на лету, нужно узнать, является ли объект экземпляром полученного класса. Как это реализовать?
что-то типа
$object instanceof $className

Пока что сделал так
get_class($object) == $className

но это конечно же неправильно, ибо объект может быть наследником
ПС. PHP 5.2.17

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

T1grOK
Как вариант, посмотри в сторону SPL - Reflеction API. http://php.net/manual/ru/book.reflection.php. Только надо проверить есть ли эта библиотека в наличии, так как в стандартную поставку она не идет c php ниже версии 5.3.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Invis1ble
Оказывается, все прекрасно работает и так :lol:
class A {}
class B extends A {}

$b = new B;
$classnameA = 'A';
$classnameC = 'C';

var_dump($b instanceof $classnameA, $b instanceof $classnameC);


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

caballero
Цитата
Оказывается, все прекрасно работает и так

а с чего бы ему не работать?
inctance of проверяет всех родителей и все имплементированые интерфейсы
johniek_comp
а зачем переменные загружать? имхо
class A {}
class B extends A {}

$b = new B;

var_dump($b instanceof A, $b instanceof B);


_____________
user posted image
Invis1ble
caballero
ага, тупанул что-то, бывает smile.gif
Просто смутило, что в переменной у нас строка, и, не проверив, заранее решил, что работать не будет

johniek_comp
перечитай первый пост, или хотя бы название топика

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

johniek_comp
шо не?
<?php
class
ParentClass {}

class MyClass extends ParentClass
{
public function ins($class)
{
echo get_class($this).' = '.$class.' и экземпляр пренадлежит этому классу';
}
}

$class = 'MyClass';

$a = new $class;

$john = var_dump($a instanceof $class);

if($john = true)
$a->ins($class);

?>


_____________
user posted image
Invis1ble
это ты к чему написал?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

johniek_comp
Invis1ble
Учусь, теперь я прокуренный в этой теме smile.gif

_____________
user posted image
Invis1ble
Цитата
Учусь, теперь я прокуренный в этой теме

а, заметно:
Цитата
if($john = true)
johniek_comp
Invis1ble
Помнишь мою тему про эту фигню? Суть в том что php все равно, работает же smile.gif

_____________
user posted image
Invis1ble
Суть в том, что это абсолютно бессмысленная проверка, но ты этого так и не понял до сих пор.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

johniek_comp
Invis1ble
Типо всегда вернет true?

_____________
user posted image
johniek_comp
Invis1ble
а тогда ничего не вернет laugh.gif tongue.gif

_____________
user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.