class foo { public $x = 2; public function a() { $x = array(); $x[] = new foo(); return $x; } public function b() { return array(1.2, array(new self())); } public function c() { $a = array(); $b =& $a; $b[] = true; return $a; } public function d() { return $this->b(); } } $foo = new foo(); var_dump($foo->a()[0]->x); var_dump($foo->a()[0]); var_dump($foo->b()[1][0]->a()[0]->x); var_dump($foo->c()[0]); var_dump($foo->d()[0]);
class foo { private function a() { var_dump(1); } public function b() { var_dump(2); } protected function c() { var_dump(3); } static function __callstatic($a, $b) { var_dump('__callStatic::' . $a); } public function __call($a, $b) { var_dump('__call::' . $a); } } $x = new foo(); $x->a(); $x->b(); $x->c(); $x::a(); $x::b(); $x::c();
<?php error_reporting(E_ALL); class foo { public $x = array(); public function b() { return $this->x; } public function c() { return $x; } public static function d() { } } $foo = new foo(); $foo->b()[0] = 1; $foo->c()[100] = 2; foo::d()[] = 3; print "ok\n";
<?php error_reporting(E_ALL); class foo { public $x = array(2); public function __call($x, $y) { if (count($this->x) == 1) { $this->x[] = $y[0]; } return $this->x; } } $foo = new foo(); $x = array(1); $foo->b($x)[1] = 3; var_dump($foo->b()[0]); var_dump($foo->b()[1]); var_dump($foo->b()[2]);
<?php class foo { static $x = array(); public function &a() { self::$x = array(1, 2, 3); return self::$x; } public function b() { $x = array(1); $x[] = 2; return $x; } } $foo = new foo(); // Changing the static variable $foo->a()[0] = 2; var_dump($foo::$x); $foo->b()[] = new stdClass(); $h = $foo->b(); var_dump($h); $h[0] = 3; var_dump($h);
<?php error_reporting(E_ALL); class foo { public $x; public static $y; public function a() { return $this->x; } public static function b() { return self::$y; } } $foo = new foo(); $h = $foo->a()[0]->a; var_dump($h); $h = foo::b()[1]->b; var_dump($h);