3 #error_reporting(E_NONE);
6 private static $foo = "I'm a foo";
7 private $myFoo = "I'm a foo instance";
9 private function instanceDo() { return 'Foo::instanceDo'; }
10 private static function staticDo() { return 'Foo::staticDo'; }
12 function getClosure() {
19 if (isset($this->myFoo
)) {
20 echo '$this->myFoo = ';
21 var_dump($this->myFoo
);
24 if (isset(static::$foo)) {
25 echo 'static::$foo = ';
26 var_dump(static::$foo);
29 if (isset(self
::$foo)) {
34 if (method_exists($this, 'staticDo')) {
35 echo 'static::staticDo() = ';
36 var_dump(static::staticDo());
39 if (method_exists($this, 'instanceDo')) {
40 echo '$this->instanceDo() = ';
41 var_dump($this->instanceDo());
46 static function getStaticClosure() {
47 return static function () {
48 if (isset(static::$foo)) {
49 echo 'static::$foo = ';
50 var_dump(static::$foo);
53 if (isset(self
::$foo)) {
58 if (method_exists(get_called_class(), 'staticDo')) {
59 echo 'static::staticDo() = ';
60 var_dump(static::staticDo());
67 private static $foo = "I'm a bar";
68 private $myFoo = "I'm a bar instance";
70 private function instanceDo() { return 'Bar::instanceDo'; }
71 private function staticDo() { return 'Bar::staticDo'; }
80 $staticCl = Foo
::getStaticClosure();
81 $Cl = $foo->getClosure();
83 echo "================================================================\n";
84 echo "\$staticCl()\n";
90 echo "================================================================\n";
91 echo "\$s1 = \$staticCl->bindTo(NULL, 'Bar')\n";
92 $s1 = $staticCl->bindTo(NULL, 'Bar');
94 echo "\$s2 = \$Cl->bindTo(\$bar, 'Bar')\n";
95 $s2 = $Cl->bindTo($bar, 'Bar');
99 echo "================================================================\n";
100 echo "\$s1 = \$staticCl->bindTo(NULL, 'Baz')\n";
101 $s1 = $staticCl->bindTo(NULL, 'Baz');
103 echo "\$s2 = \$Cl->bindTo(\$baz, 'Baz')\n";
104 $s2 = $Cl->bindTo($baz, 'Baz');
108 echo "================================================================\n";
109 echo "\$s2 = \$Cl->bindTo(\$baz, 'Bar')\n";
110 $s2 = $Cl->bindTo($baz, 'Bar');
114 echo "================================================================\n";
115 echo "\$s2 = \$Cl->bindTo(\$foo, 'Baz')\n";
116 $s2 = $Cl->bindTo($foo, 'Baz');