php動態調用函數方法,第一反應就是魔術函數帶下劃線的函數,__autoload,__struct,__get,__set等函數。
其實php提供call_user_func()call_user_func_array(), 能夠動態的調用函數。在實現MVC機制的時候,當路由器完成動態路由以後,就會解析後動態的調用對應的Controller方法。call_user_func 跟call_user_func_array差很少,只是array函數,是將函數的參數做爲數組傳遞進來。而call_user_func是在調用的函數後面,直接將參數給帶進去。
檢查一個ip地址的合法性,第一反映就是,根據ip地址,利用explode函數將ip進行分割,拿到第一個元素與255進行大小比較,判斷是不是是ip的合法地址。
其實合理的判斷方法,應該是利用ip2long這個函數進行判斷。由於ip2long若是解析到錯誤的ip地址,會返回false。同理類推,能夠將獲得的ini類型的ip地址,給定的ip範圍做對比,從而進行ip地址限制。
當線上一張表數據量巨大的時候,同時須要對這張表進行字段更新時候。有什麼好的辦法?
第一反應,啓用備份數據表。而後對數據表進行更新,再將數據導入更新好的數據表結構的表中。
這個暫時沒有想到關係型數據庫,mysql特別好的實現方法,不過啓用非關係型數據庫nosql,mongodb甚至是redis的話,就沒有表結構限制這個概念。天然對錶字段進行更新,不須要中止線上應用。而redis自己就是key-value類型,沒有表這個概念的話,對字段的增刪改都不會影響線上應用的使用。
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。php