Php sihirli methodlar
__construct ,__destruct ,__call ,__callStatic ,__get ,__set ,__isset ,__unset ,__sleep ,__wakeup ,__toString ,__invoke ,__clone ,sumClone ,__debugInfo ,__set_state
<?php
require_once "Eductaion.php";
use magic_method\education\Eductaion;
$student = new Eductaion();//__construct,__destruct örnek
$student->message();//__call örnek
magic_method\education\Eductaion::List();//__callStatic örnek
echo $student->tckn; //__get örnek
$student->vkn =12345; //__set örnek
isset($student->tckn);//__isset örnek
empty($student->vkn);//__isset örnek
unset($student->vkn);//__unset örnek
/*
$result = serialize($student);//__sleep örnek
unserialize($result);//__wakeup örnek
echo $student;//__toString örnek
Eductaion('abc');//__invoke örnek
*/
$student1 = clone $student;//__clone örnek
$student2 = clone $student;//__clone örnek
$student->sumClone();//__clone örnek
var_dump($student);
<?php
namespace magic_method\education;
class Eductaion{
private $tckn;
private static $number = 0;
/**
Class çağrıldığında ilk çağrılan method
*/
function __construct(){
echo "Nesne belleğe yüklendi <br>";
}
/**
Class çağrıldığında sonra işlem sonunda çağrılan sınıf
*/
function __destruct(){
echo "Nesne bellekten silindi <br>";
}
/**
eğer muvcut class da var olmayan bir method çağrıldığında
dönmesini istediğimiz response bu __call methodu döner.
*/
function __call($name,$per){
echo $name." methodu bu sınıfta mevcut değil<br>";
}
/**
__callStatic Nesne içinde var olmayan bir static method çağrıldığında. çalışan method.
*/
public static function __callStatic($name,$per){
echo $name." methodu bu sınıfta mevcut değil<br>";
}
/**
__get Nesne içinde var olmayan veya erişim izni olmayan bir proertye erişilmeye çalıştığında çalışır.
*/
public function __get($name){
echo $name." bu property erililmiyor veya bulunamadı<br>";
}
/**
__set Nesne içinde var olmayan veya erişim izni olmayan bir proertye değer atamaya çalıştığında çalışır.
*/
public function __set($name,$val){
echo $name." bu property erililmiyor veya bulunamadı".$val." değeri atanamaz<br>";
}
/**
__isset Nesne içinde var olmayan veya erişim izni olmayan bir proertye isset veya empty ile çağrıldığında çalışır.
*/
public function __isset($name){
echo $name." isimli property bulunmuyor veya erilmiyor. bu yüzden isset veya empty func ile sınayamazsınız<br>";
}
/**
__unset Nesne içinde var olmayan veya erişim izni olmayan bir proertye __unset foncksiyonu ile yok edilmeye çalışıldığında çalışır.
*/
public function __unset($name){
echo $name." isimli property bulunmuyor veya erilmiyor. bu yüzden unset func ile sınayamazsınız<br>";
}
/**
__sleep Nesneye serialize çalışıldığında çalışır.
*/
public function __sleep(){
echo " Nesne dizi haline getiriliyor<br>";
}
/**
__wakeup Nesneye unserialize çalışıldığında çalışır.
*/
public function __wakeup(){
echo "dizi nesne haline getiriliyor<br>";
}
/**
__toString çalışıldığında Nesne yazdırlmaya çalışıldığında çalışır.
*/
public function __toString(){
echo "Nesne yazdırlmaya çalışıldı<br>";
}
/**
__invoke Nesne fonksiyon gibi çalıştırıldığında çalışır.
*/
public function __invoke(){
echo "Nesne fonksiyon gibi çalıştırıldığında döner.<br>";
}
/**
__clone Nesne klonlandığında çalışır .
*/
public function __clone(){
self::$number++;
}
public function sumClone(){
echo "Toplam clonle sayısı:".self::$number."<br>";
}
/**
__debugInfo Nesne var_dump methodu uygulandığında çalışır .
*/
public function __debugInfo(){
echo "Nesneye var_dump uygulandı<br>";
}
/**
__debugInfo Nesne var_export methodu uygulandığında çalışır .
*/
//public function __set_state(){}
}
Magic Methods PHP
4/
5
Oleh
Root