Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> instanceof, имя класса на лету
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 12174
Пользователь №: 23195
На форуме: 14 лет, 7 месяцев, 26 дней
Карма: 441

Трезвый :
15 лет, 6 месяцев, 26 дней


Всем привет.
В коде имя класса генерируется на лету, нужно узнать, является ли объект экземпляром полученного класса. Как это реализовать?
что-то типа
$object instanceof $className

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

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


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2804
Пользователь №: 24406
На форуме: 14 лет, 5 месяцев, 3 дня
Карма: 181




Как вариант, посмотри в сторону 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
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 12174
Пользователь №: 23195
На форуме: 14 лет, 7 месяцев, 26 дней
Карма: 441

Трезвый :
15 лет, 6 месяцев, 26 дней


Оказывается, все прекрасно работает и так :lol:
class A {}
class B extends A {}

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

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


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
caballero  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1674
Пользователь №: 29588
На форуме: 13 лет, 6 месяцев, 6 дней
Карма: 40




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

а с чего бы ему не работать?
inctance of проверяет всех родителей и все имплементированые интерфейсы
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2480
Пользователь №: 28490
На форуме: 13 лет, 8 месяцев, 26 дней
Карма: -19

Трезвый :
30 лет, 2 месяца, 4 дня


а зачем переменные загружать? имхо
class A {}
class B extends A {}

$b = new B;

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


--------------------
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 12174
Пользователь №: 23195
На форуме: 14 лет, 7 месяцев, 26 дней
Карма: 441

Трезвый :
15 лет, 6 месяцев, 26 дней


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

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


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2480
Пользователь №: 28490
На форуме: 13 лет, 8 месяцев, 26 дней
Карма: -19

Трезвый :
30 лет, 2 месяца, 4 дня


шо не?
<?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
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 12174
Пользователь №: 23195
На форуме: 14 лет, 7 месяцев, 26 дней
Карма: 441

Трезвый :
15 лет, 6 месяцев, 26 дней


это ты к чему написал?


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2480
Пользователь №: 28490
На форуме: 13 лет, 8 месяцев, 26 дней
Карма: -19

Трезвый :
30 лет, 2 месяца, 4 дня


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


--------------------
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 12174
Пользователь №: 23195
На форуме: 14 лет, 7 месяцев, 26 дней
Карма: 441

Трезвый :
15 лет, 6 месяцев, 26 дней


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

а, заметно:
Цитата
if($john = true)

laugh.gif


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2480
Пользователь №: 28490
На форуме: 13 лет, 8 месяцев, 26 дней
Карма: -19

Трезвый :
30 лет, 2 месяца, 4 дня


Invis1ble
Помнишь мою тему про эту фигню? Суть в том что php все равно, работает же smile.gif


--------------------
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 12174
Пользователь №: 23195
На форуме: 14 лет, 7 месяцев, 26 дней
Карма: 441

Трезвый :
15 лет, 6 месяцев, 26 дней


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


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2480
Пользователь №: 28490
На форуме: 13 лет, 8 месяцев, 26 дней
Карма: -19

Трезвый :
30 лет, 2 месяца, 4 дня


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


--------------------
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 12174
Пользователь №: 23195
На форуме: 14 лет, 7 месяцев, 26 дней
Карма: 441

Трезвый :
15 лет, 6 месяцев, 26 дней


типа да


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2480
Пользователь №: 28490
На форуме: 13 лет, 8 месяцев, 26 дней
Карма: -19

Трезвый :
30 лет, 2 месяца, 4 дня


Invis1ble
а тогда ничего не вернет laugh.gif tongue.gif


--------------------
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса