Handle this typehints
[hiphop-php.git] / hphp / test / quick / instanceof.php
blobc3b2f8a048b6df7aba64af55770e97b0acfbc053
1 <?hh
3 class Bob {
5 class Loblaw {
7 // Interfaces
8 interface BaseOne {
10 interface BaseTwo {
13 interface Iface extends BaseOne, BaseTwo {
16 class Base implements BaseOne {
18 class Fancy implements Iface {
21 function main() {
22 $a = new Bob();
24 // instanceof constant
25 var_dump($a instanceof Bob);
26 var_dump($a instanceof Loblaw);
28 // instanceof string variable
29 $bob = "Bob";
30 $loblaw = "Loblaw";
31 var_dump($a instanceof $bob);
32 var_dump($a instanceof $loblaw);
34 // instanceof object
35 $bob = new Bob();
36 $loblaw = new Loblaw();
37 var_dump($a instanceof $bob);
38 var_dump($a instanceof $loblaw);
40 $b = new Base();
41 var_dump($b instanceof BaseOne);
43 // Follow the interface hierarchy up
44 $f = new Fancy();
45 var_dump($f instanceof BaseTwo);
47 main();