- var_dump: documentation ( source)
- implode: documentation ( source)
<?php
class Foo
{
public function __construct()
{
echo '__construct';
}
public function __call($name, $arguments)
{
echo $name . ' ' . implode(', ', $arguments);
}
public static function __callStatic($name, $arguments)
{
echo '(static) ' . $name . ' ' . implode(', ', $arguments);
}
public function __get($name)
{
echo '__get ';
return $this->$name;
}
public function __set($name, $value)
{
echo '__set ';
$this->$name = $value;
}
public function __isset($name)
{
echo "Est-ce que '$name' est défini ?\n";
return isset($this->$name);
}
public function __unset($name)
{
echo "Effacement de '$name'\n";
//unset($this->$name);
}
public function __destruct()
{
echo '__destruct';
}
}
$foo = new Foo(); // __construct
/*
$foo->undefinedMethod('arg1', 'arg2'); // undefinedMethod arg1, arg2
$foo::undefinedMethod('arg1'); // (static) undefinedMethod arg1
echo $foo->name; // __get Foo
var_dump(isset($foo->name)); // bool(true)*/
$foo->name = 'Foo'; // __set
unset($foo->name);
var_dump(isset($foo->name)); // bool(true)
//unset($foo); // __destruct
?>