mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
- Add new test
This commit is contained in:
parent
7bbbfa3f15
commit
37e2436b6f
68
tests/classes/__set__get_005.phpt
Executable file
68
tests/classes/__set__get_005.phpt
Executable file
@ -0,0 +1,68 @@
|
||||
--TEST--
|
||||
ZE2 __set() and __get()
|
||||
--SKIPIF--
|
||||
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
class Test
|
||||
{
|
||||
protected $x;
|
||||
|
||||
function __get($name) {
|
||||
echo __METHOD__ . "\n";
|
||||
if (isset($this->x[$name])) {
|
||||
return $this->x[$name];
|
||||
}
|
||||
else
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
function __set($name, $val) {
|
||||
echo __METHOD__ . "\n";
|
||||
$this->x[$name] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
class AutoGen
|
||||
{
|
||||
protected $x;
|
||||
|
||||
function __get($name) {
|
||||
echo __METHOD__ . "\n";
|
||||
if (!isset($this->x[$name])) {
|
||||
$this->x[$name] = new Test();
|
||||
}
|
||||
return $this->x[$name];
|
||||
}
|
||||
|
||||
function __set($name, $val) {
|
||||
echo __METHOD__ . "\n";
|
||||
$this->x[$name] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
$foo = new AutoGen();
|
||||
$foo->bar->baz = "Check";
|
||||
|
||||
var_dump($foo->bar);
|
||||
var_dump($foo->bar->baz);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
AutoGen::__get
|
||||
Test::__set
|
||||
AutoGen::__get
|
||||
object(Test)#%d (1) {
|
||||
["x:protected"]=>
|
||||
array(1) {
|
||||
["baz"]=>
|
||||
string(5) "Check"
|
||||
}
|
||||
}
|
||||
AutoGen::__get
|
||||
Test::__get
|
||||
string(5) "Check"
|
||||
===DONE===
|
Loading…
Reference in New Issue
Block a user