Time of Update: 2018-12-07
<?php/*** create by :xiaojiang* PHP log 類 日誌入庫功能 僅供交流學習*/class Config{ public static function getConfig (){ return array( 'LOG_LEVEL'=>75 //INFO ); }}class Log{ private $LogFile; private $logLevel; const
Time of Update: 2018-12-07
<?phpclass a { static public $obj; public function __construct(){ } static public function getInstance(){ if(empty(self::$obj)){ echo "執行執行個體化"; self::$obj = new a(); } return
Time of Update: 2018-12-07
<?php private function _deleteSubNode($ids){ $subNodes = array(); $mod = D('Node'); foreach (explode ( ',', $ids ) as $k){ $res = $this->_getSubNode($k,$subNodes[$k],$mod); //擷取子節點 if(!empty($res[
Time of Update: 2018-12-07
額。今天做圖片上傳時要用這個。 邊開手冊邊研究 函數是很好用 但是不支援多級 例如“aaa/bbb” 只支援以及目錄 也可能是FTP伺服器不同吧, 反正開發環境建不成功 照著手冊老外改了下 測試支援 多級 <?php/* *@param ftp FTP連結 path 要建立的路徑 */function _ftpMkdir($ftp,$path){ $pathArr = explode("/",$path); $fullpath
Time of Update: 2018-12-07
一、先看最簡單的情況。有兩個數組:$arr1 = array(1,9,5);$arr2 = array(6,2,4);array_multisort($arr1,$arr2);print_r($arr1); // 得到的順序是1,5,9print_r($arr2); // 得到的順序是6,4,2我估計兩個數組的值自始至終都是對應著的:1對應6,9對應2,5對應4。我們再加多一個數組看看會怎樣:$arr1 = array(1,9,5);$arr2 = array(6,2,4);$arr3 =
Time of Update: 2018-12-07
<?php/** * php二分尋找法 */ $arr = array(0,4,5,6,7,8,9);function search($arr, $low,$high,$k){ if($high >= $low){ $middle = intval(($high+$low)/2); //ceil 和intval 無差別 if($arr[$middle] == $k){ return '找到'; }elseif ($
Time of Update: 2018-12-07
<?phpfunction map($fun, $list,$params=array()){ $acc=NULL; $last=array_push($params, NULL,$acc)-1; foreach($list as $params[$last-1]){ //第一次見這種寫法感覺很神奇 $params[$last]=call_user_func_array($fun , $params ); }
Time of Update: 2018-12-07
1.盡量靜態化:如果一個方法能被靜態,那就聲明它為靜態,速度可提高1/4,甚至我測試的時候,這個提高了近三倍。當然了,這個測試方法需要在十萬級以上次執行,效果才明顯。其實靜態方法和非靜態方法的效率主要區別在記憶體:靜態方法在程式開始時產生記憶體,執行個體方法在程式運行中產生記憶體,所以靜態方法可以直接調用,執行個體方法要先成生執行個體,通過執行個體調用方法,靜態速度很快,但是多了會佔記憶體。任何語言都是對記憶體和磁碟的操作,至於是否物件導向,只是軟體層的問題,底層都是一樣的,只是實現方法不同。靜
Time of Update: 2018-12-07
由於是午休時間寫的 所以不太詳細盡情諒解。 主要還是老生常談的問題 OOP 。。。 工作兩年 對OOP 這玩意有些自己的理念 ,但翻遍了各大書店的OOP 介紹都是天馬行空 (很像是一個人寫的) <?php class Car{ public getName(){ return $this->name; } public getSpeed(){ return
Time of Update: 2018-12-07
<?phpInterface Obseverr{ public function update(Obseverable $subject);}abstract class Obsever implements Obseverr{ protected $date; public function update(Obseverable $date){ $this->date = $date; }}abstract class Obseverable{
Time of Update: 2018-12-07
15-狀態模式星際的一些兵種會有不止一種狀態,比如坦克可以架起來,槍兵可以打興奮劑,甚至還有一些被動的,比如被蟲族女王噴洒綠色液體後,敵人的行動變慢。如果按照一般的思路,每次我們對一個小兵進行操作的時候,比如一輛坦克,我們都要用if判斷他的狀態,這樣代碼中會有很多的if,else或者swith。不過我們可以發現,我們需要的是他在某個狀態下的行為,如果把這些行為按照狀態封裝起來,就可以減少大量的判斷。待解決的問題:封裝坦克的狀態,讓狀態自己去控制行為。思路:把狀態作為屬性,兵種類本身只控制狀態的變
Time of Update: 2018-12-07
今天做一個應用本來想在php處理常式期間把資訊寫入session 在後台執行 然後前台通過ajax進行調用查看 發現無論如何調用都要等 程式完全執行完 才會出現結果。 百度了下 原來 PHP 的session 設定了鎖的功能。 (類似MYSQL鎖表) <?php session_start(); $_SESSION['test'] = 0; session_write_close(); // notice! sleep(5)
Time of Update: 2018-12-07
最近都寫了很多博文,其實這些都是一些總結性東西,之前我學習新東西的筆記都是寫到word文檔裡面,漸漸地我發現,寫在word文檔很麻煩。修改Word文檔很不便,而博文就像雲端服務一樣,隨處可以修改,只要發現之前寫的博文欠妥或者不夠完善了,馬上就可以修改。後續將會繼續把之前總結在word的內容copy上來:設計模式,資料結構與演算法,linux編程之類等等。因此我漸漸地把之前的一些內容copy到博文這裡來。一方面是易於修改,另外方面是溫故而知新。當然了,最新的一些博文有些是新內容的,那些都涉及到P
Time of Update: 2018-12-07
<?php/** * php 字串插入 2012/7/9 星期一 */function insertStr($str,$i,$Istr){ if(strlen($str) < $i) return; $resStr = ''; for($j = 0; $j < $i; $j++){ $prev .= $str[$j]; } for($k= $i;$k <= strlen($str); $k++){
Time of Update: 2018-12-07
<?php/** * PHP collection 類(一) */error_reporting(0);class Collection{ protected $_members = array(); public function addItem($obj,$key = null){ if(empty($key)) throw new Exception("The key is not given!");
Time of Update: 2018-12-07
<?php/** * php 快速排序 */$arr = array(7,8,6,5,3,10);function quick($array){ if(count($array) <=1) return $array; $k = $array[0]; $left = array(); $right = array(); for($i =1; $i< count($array); $i++){
Time of Update: 2018-12-07
<?php/** * php strlen 擷取字串長度 */function getLength($str){ $i = 0; while($str[$i]){ $i++; } return $i;}//echo getLength('123456789a');/** * php strrev 字串翻轉 */ function str_rev($str){ if($str <=1 ) return ; $res_str = '
Time of Update: 2018-12-07
1-簡單原廠模式不熟悉物件導向的朋友,建議先看看用星際快速入門PHP物件導向編程上次用星際爭霸討論了物件導向的基礎知識,似乎物件導向能解決很多問題。但是還會有很多問題,簡單的靠類和對象解決不得太好。比如如何根據玩家輸入的內容(儘管可以轉化為其他字串),來確定要製造的兵種,玩家不會輸入代碼:new Marine()。
Time of Update: 2018-12-07
8-職責鏈模式星際的兵種屬性隨著對平衡性的調節,會進行修改。如果這樣的話,我們就要考慮減少一個事件和具體處理的關聯性。比如一顆原子彈投下的瞬間,在殺傷範圍內的部隊或者建築都會減少血,但是隨著距離中心點的遠近,受損程度是不同的,而且不同的兵種和建築受損情況是不同的。待解決的問題:原子彈投下的瞬間,將殺傷的處理分別交給殺傷範圍內的部隊或者建築自己的方法處理。思路:建立一個介面,讓所有的部隊或者建築實現。職責鏈模式(Chain of
Time of Update: 2018-12-07
<?phpabstract class Model{ protected $pk = 'id'; protected $_ID = null; protected $_tableName; protected $_arRelationMap; protected $_modifyMap; protected $is_load = false; protected $_blForDeletion; protected $_DB; public