Magic Methods PHP

 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(){}
}

Related Posts

Magic Methods PHP
4/ 5
Oleh