php magic methods code example
Example 1: php magic methods
/*
The following function names are magical in PHP classes.
You cannot have functions with these names in any of
your classes unless you want the magic functionality
associated with them.
*/
__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__serialize(),
__unserialize(),
__toString(),
__invoke(),
__set_state(),
__clone(),
__debugInfo()
Example 2: php invoke
<?php
class CallableClass
{
public function __invoke($x)
{
var_dump($x);
}
}
$obj = new CallableClass;
$obj(5);
var_dump(is_callable($obj));
?>
Example 3: magic method get php
<?php
class Person{
private $firstName;
public function __get($propertyName){
echo "attempted to read non-existing property: $propertyName
";
}
public function __set($propertyNane, $propertyValue){
echo "attempted to write to non-existing property: $propertyNane
";
}
}
$p = new Person();
$p->firstName = 'Doe';
echo $p->firstName;
$p->lastName = 'John';
echo $p->lastName;