note 109108 deleted from internals2.opcodes.instanceof by cmb

From: Date: Sun, 10 Jan 2021 13:21:46 +0000
Subject: note 109108 deleted from internals2.opcodes.instanceof by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-216100@lists.php.net to get a copy of this message
Note Submitter: cody at codysnider dot com ---- When checking instanceof against a subclass of the class in question, it will return true. <?php class Foo { public $foobar = 'Foo'; public function test() { echo $this->foobar . "\n"; } } class Bar extends Foo { public $foobar = 'Bar'; } $a = new Foo(); $b = new Bar(); echo "use of test() method\n"; $a->test(); $b->test(); echo "instanceof Foo\n"; var_dump($a instanceof Foo); // TRUE var_dump($b instanceof Foo); // TRUE echo "instanceof Bar\n"; var_dump($a instanceof Bar); // FALSE var_dump($b instanceof Bar); // TRUE echo "subclass of Foo\n"; var_dump(is_subclass_of($a, 'Foo')); // FALSE var_dump(is_subclass_of($b, 'Foo')); // TRUE echo "subclass of Bar\n"; var_dump(is_subclass_of($a, 'Bar')); // FALSE var_dump(is_subclass_of($b, 'Bar')); // FALSE ?> Result (CLI, 5.4.4): use of test() method Foo Bar instanceof Foo bool(true) bool(true) instanceof Bar bool(false) bool(true) subclass of Foo bool(false) bool(true) subclass of Bar bool(false) bool(false)

« previous php.notes (#216100) next »