LINUX.ORG.RU

[PHP] $object instanceof $someVariable


0

1

Почему не работает сабж? Использую PHP 5.3.3. На php.net сказано, что такая конструкция должна работать.

$var = Test;
$object = new Test();
$object instanceof $var; // не работает
$object instanceof Test; // работает

★★★

% php -a
Interactive shell

php > $var = Test;
php > class Test {};
php > $object = new Test();
php > var_dump($object instanceof $var);
bool(true)
php > $object instanceof Test;
php > var_dump($var);
string(4) "Test"
php > 

вобщем вот

anonymous ()
$ php
<?php
    class Test {}

    $var = 'Test';      
    $object = new Test();

    if ($object instanceof $var) echo "OK\n";   
    if ($object instanceof Test) echo "OK\n";
^D
OK
OK

$ php -v
PHP 5.3.3-7+squeeze3 [...]

Всё работает, подтверждаю.

helios ★★★★★ ()

кароче эта хренота работает если имена несуществующих констант преобразуются в строки т.е. ( constant == 'constant' ) === true;

anonymous ()
Ответ на: комментарий от trashymichael

в пейтоне можно, но речь не об этом а том почему у ТСа оно не работает

могу предположить что у него может быть в php.ini

error_reporting = E_ALL
display_errors = Off
но не уверен

anonymous ()
Ответ на: комментарий от anonymous

просто так, просто он клевый :3

Петун-фанбой детектед. Открой для себя языки, которые удобнее Петуна.

anonymous ()
Ответ на: комментарий от anonymous

Например? Нет, я сам не фанат питона, просто интересно мнение общественности: какие ЯП нравятся людям, ушедшим с питона.

helios ★★★★★ ()
Ответ на: комментарий от VirRaa

У Вас какой-то неправильный php.

$ php
<?php
class Client {} 
$entity = 'Client';   
$oEntity = new Client();

var_dump($entity);
var_dump($oEntity instanceof Client);
var_dump($oEntity instanceof $entity);
^D
string(6) "Client"
bool(true)
bool(true)
helios ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.