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;

Tags:

Misc Example