php定時執行函數

PHP沒有事件機制。有一些模擬事件的方法,但我覺得代碼太繁瑣了,不實用。這里我向你推薦PHP的魔術方法。


魔術方法會在調用一個不存在或是非公有的方法之前,自動根據某種規則調用另外一個方法。比如下面的類就是了這樣:在調用insert方法時,判斷類中是否有before_insert方法。如果有則先調用before_insert方法,并檢查它的返回值,決定是否繼續調用insert。如果before_insert是一個過濾函數,如果驗證失敗就會返回false,insert插入就不會進行了。


如果不明白可以閱讀PHP手冊中介紹魔術方法的部分。

<?php
class?MyClass{
????//?如果使用類的實例調用$method,但$method方法不是公有的,就會觸發此函數。
????public?function?__call($method,?$args)?{
????????//?檢查是否存在方法$method
????????if?(method_exists($this,?$method))?{
????????????$before_method?=?before_?+?$method;
????????????//?檢查是否存在方法$before_method
????????????if?(method_exists($this,?$before_method))?{
????????????????//?調用$before_method,檢查其返回值,決定是否跳過函數執行
????????????????if?(call_user_func_array(array($this,?$before_method),?$args))?{
????????????????????retrun?call_user_func_array(array($this,?$method),?$args)
????????????????}
????????????}?else?{
????????????????//?$before_method不存在,直接執行函數
????????????????retrun?call_user_func_array(array($this,?$method),?$args)
????????????}
????????}?else?{
????????????throw?new?Exception(no?such?method??.?$method);
????????}
????}
????
????//?注意這里不要寫成public
????private?function?insert()?{}
????
????//?低調!不要寫出公有的
????private?function?before_insert()?{}
}

$myobj?=?MyClass;
$myobj->insert(mytable,?array(name=>2012));
在寫一個自定義函數,在執行方法的時候$this->自定義函數名執行該方法的時候調用另一個方法
網游神話之賽亞血脈txt 泰國曼谷風景圖片 天龍八部3微電影 alt d e excel 88紅河和紫云哪個好抽 ie瀏 合歡教副教主大戰御龍三莊 穿越混沌的完整小說 王銀成的鐵桿曲慶武 abaqus中chaboche cq40筆記本換屏教程 One show piudiepie有多少粉絲 德漫畫總部2 新巨人缺少 愛什么稀罕鼓譜 東方霸主床戲多少集 紱諱功鏈堝瘨(濂沖皧1v1) clk gtramg 13個人點幾個菜合適 重慶市大足區南門廣場瑞泰花園 非主流女生服裝 2018大興安嶺中考各學校成績 全新奧迪a4l汽車之家 kind的形容詞是什么 老爹經營冰淇淋店 刺參的家庭做法 直隸綿州志 cf手游v5抽雷神禮包 idbd462天海翼磁力鏈接 mac shy girl

Copyright 三路網 Some Rights Reserved

如反饋或投訴等情況聯系:une35498#163.com

内蒙古11远5走势图