php榄旀湳鏂规硶鎬庝箞浣跨敤
PHP榄旀湳鏂规硶鏄寚涓€浜涚壒娈婄殑鏂规硶锛屽畠浠互鍙屼笅鍒掔嚎寮€澶村拰缁撴潫锛岀敤浜庡湪鐗瑰畾鐨勬儏鍐典笅鑷姩琚皟鐢ㄣ€備互涓嬫槸鍑犱釜甯哥敤鐨凱HP榄旀湳鏂规硶鍙婂叾浣跨敤鏂规硶锛?/p>
- __construct()锛氭瀯閫犲嚱鏁帮紝鍦ㄥ垱寤哄璞℃椂鑷姩璋冪敤銆傜敤浜庡垵濮嬪寲瀵硅薄鐨勫睘鎬ф垨鎵ц鍏朵粬蹇呰鐨勬搷浣溿€?/li>
class MyClass {
public function __construct() {
// 鏋勯€犲嚱鏁扮殑浠g爜
}
}
$obj = new MyClass(); // 鍒涘缓瀵硅薄鏃惰嚜鍔ㄨ皟鐢ㄦ瀯閫犲嚱鏁?/span>
- __destruct()锛氭瀽鏋勫嚱鏁帮紝鍦ㄥ璞¤閿€姣佸墠鑷姩璋冪敤銆傜敤浜庢墽琛屼竴浜涙竻鐞嗗伐浣滄垨閲婃斁璧勬簮鐨勬搷浣溿€?/li>
class MyClass {
public function __destruct() {
// 鏋愭瀯鍑芥暟鐨勪唬鐮?/span>
}
}
$obj = new MyClass();
unset($obj); // 瀵硅薄琚攢姣佸墠鑷姩璋冪敤鏋愭瀯鍑芥暟
- __get()銆乢_set()锛氳闂笉瀛樺湪鐨勫睘鎬ф椂鑷姩璋冪敤鐨勬柟娉曘€俖_get()鐢ㄤ簬鑾峰彇灞炴€у€硷紝__set()鐢ㄤ簬璁剧疆灞炴€у€笺€?/li>
class MyClass {
private $data = [];
public function __get($name) {
return isset($this->data[$name]) ? $this->data[$name] : null;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
}
$obj = new MyClass();
$obj->name = "John"; // 鑷姩璋冪敤__set()鏂规硶
echo $obj->name; // 鑷姩璋冪敤__get()鏂规硶鑾峰彇灞炴€у€?/span>
- __call()銆乢_callStatic()锛氳皟鐢ㄤ笉瀛樺湪鐨勬柟娉曟椂鑷姩璋冪敤鐨勬柟娉曘€俖_call()鐢ㄤ簬璋冪敤瀵硅薄鏂规硶锛宊_callStatic()鐢ㄤ簬璋冪敤闈欐€佹柟娉曘€?/li>
class MyClass {
public function __call($name, $arguments) {
echo "Calling object method $name with arguments: ";
print_r($arguments);
}
public static function __callStatic($name, $arguments) {
echo "Calling static method $name with arguments: ";
print_r($arguments);
}
}
$obj = new MyClass();
$obj->myMethod("arg1", "arg2"); // 鑷姩璋冪敤__call()鏂规硶
MyClass::myStaticMethod("arg1", "arg2"); // 鑷姩璋冪敤__callStatic()鏂规硶
杩欎簺鍙槸涓€浜涘父鐢ㄧ殑PHP榄旀湳鏂规硶锛岃繕鏈夊叾浠栦竴浜涢瓟鏈柟娉曞彲浠ョ敤浜庡疄鐜版洿楂樼骇鐨勫姛鑳姐€備綘鍙互鏌ラ槄PHP瀹樻柟鏂囨。鎴栧叾浠栫浉鍏宠祫鏂欐潵浜嗚В鏇村鐨勯瓟鏈柟娉曘€?/p>