Time of Update: 2016-07-29
1.當將所有執行個體設為null,php會自動清除對象的引用。 2.建構子:__construct() 清除對象時自動執行的方法:__destruct() 也可以設定手動清除對象的方法:destroy或者clean_up 3.對象中的三種變數範圍:public、private和protected。 4.對象中的常量屬性可以使用const關鍵字,然後在對象外部以“對象名::屬性名稱”的格式引用,在對象內部以“self::屬性名稱”的格式引用。 5.在整個對象所有執行個體中通用的屬性,就是靜態屬性,
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * Factory 方法模式 * * 定義一個用於建立對象的介面,讓子類決定將哪一個類執行個體化,使用一個類的執行個體化延遲到其子類 */ /* class DBFactory { public static function create($type) { swtich($type) { case "Mysql": return new MysqlDB(); break; case "Postgre": return new PostgreDB(); break;
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 策略模式(Strategy.php) * * 定義一系列演算法,把它們一個個封裝起來,並且使它們可相互替換,使用得演算法的變化可獨立於使用它的客戶 * */ // ---以下是一系列演算法的封閉---- interface CacheTable { public function get($key); public function set($key,$value); public function del($key); } // 不使用緩衝 class
Time of Update: 2016-07-29
複製代碼 代碼如下:$arrF = array(); $arrS = array(); $intTotal = 100; $intRand = 10; for($i=0; $i { $arrF[] = rand(1, $intRand); $arrS[] = rand(1, $intRand); } $arrT = array_merge($arrF, $arrS); $arrRF = array(); $intStart = time(); foreach($arrT as $v) { if(
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 原型模式 * * 用原型執行個體指定建立對象的種類.並且通過拷貝這個原型來建立新的對象 * */ abstract class Prototype { private $_id = null; public function __construct($id) { $this->_id = $id; } public function getID() { return $this->_id; } public function __clone() // magic
Time of Update: 2016-07-29
複製代碼 代碼如下:$zongzi = "asdfasdf(asdfasdf?asfdadsf)"; echo $zongzi = quotemeta($zongzi); echo ""; $zongzi = stripslashes($zongzi); echo $zongzi; ?> PHP quotemeta() 函數 定義和用法 quotemeta() 函數在字串中某些預定義的字元前添加反斜線。 這些預定義字元是: 句號 (.) 反斜線 (\) 加號 (+) 星號 (*) 問號 (?)
Time of Update: 2016-07-29
/** * 命令模式 * * 將一個請求封裝為一個對象從而使你可用不同的請求對客戶進行參數化,對請求排除或記錄請求日誌,以及支援可取消的操作 */ interface Command { public function execute(); } class Invoker { private $_command = array(); public function setCommand($command) { $this->_command[] = $command; } public
Time of Update: 2016-07-29
複製代碼 代碼如下:class Controller_Jobs extends Controller_Base{ public function before(){ parent::before(); if(Request::$protocol != "cli"){ die("Only cli allowed!\n"); } } public function after(){ parent::after(); //do some cleaning tasks } private
Time of Update: 2016-07-29
複製代碼 代碼如下:/*函數array_push():將一個或多個單元壓入數組的末尾(入棧) * 1、文法:int array_push ( array &array, mixed var [, mixed ...] ) * 2、描述:將 array 當成一個棧,並將傳入的變數壓入 array 的末尾。array 的長度將根據入棧變數的數目增加。 * 3、注意事項: * 3.1、該函數返回數組新的元素的總數 *
Time of Update: 2016-07-29
複製代碼 代碼如下:/* 類的聲明 * 1.你要開發的是什麼,確定寫什麼類 * 2.類中的成員一定要屬於這個類 * [修飾類的關鍵字] class 類名{ * 成員屬性: * 成員方法: * } * 3.在類中聲明成員屬性時,前面必須有修飾詞,當不確定使用哪個詞時,使用var或public * 一個檔案只儲存一個類,檔案名稱中包含類名,檔案:類名.class.php * 類名的寫法: * 變數:aaaBbbCcc * 函數:aaaBbbCcc * 常量:AAABBBCCC *
Time of Update: 2016-07-29
複製代碼 代碼如下:/*函數array_map()函數:多數組回呼函數---將回呼函數作用到給定數組的單元上 * 1、文法:array array_map ( callback callback, array arr1 [, array ...] ) * 2、描述:返回一個數組,該數組包含了 arr1 中的所有單元經過 callback 作用過之後的 * 單元。callback 接受的參數數目應該和傳遞給 array_map() 函數的數組數目一致。 * 3、注意事項: *
Time of Update: 2016-07-29
複製代碼 代碼如下:/* PHP物件導向的程式設計 * * PHP5 * * 數組和對象:都屬於PHP的複合類型(一個變數可以儲存多個單元) * * 對象比數組更強大,不僅可以儲存多個資料,還可以將函數存在對象中 * * 對象的三大特性:封裝、繼承、多態 * * 物件導向編程(oop) //符合軟體工程中的 重用性 靈活性 擴充性 * * 物件導向和面向過程之間的區別 * * 最小的單位:函數 //面向過程 * 最小的單位:對象 //物件導向 * * 什麼是對象
Time of Update: 2016-07-29
memcache的官方首頁:http://pecl.php.net/package/memcachememcached的官方首頁:http://pecl.php.net/package/memcached以下是我安裝Memcached版本的PHP模組的過程記錄:wget http://download.tangent.org/libmemcached-0.48.tar.gztar zxf libmemcached-0.48.tar.gzcd
Time of Update: 2016-07-29
複製代碼 代碼如下:/*資料類型之間相互轉換 * 一種是強制轉換 * setType(變數,類型); //int,integer,float,double等等。 * 這個函數將原變數的類型改變,用var_dump();可以查看變數 * * 在賦值前使用(類型)的形式,不會改變原變數的類型 * $a=(int)"123abc"; * * $變數=intval(變數或值); * $變數=floatval(變數或值); * $變數=stringval(變數或值); * *
Time of Update: 2016-07-29
複製代碼 代碼如下:/*運算子號(PHP)操作符號 * * 按運算子號功能分為: * 一、算術運算子 + - * / % ++ -- * 二、字串運算子 . 串連運算子 * 三、賦值運算子 = += -= *= /= %= .= * 四、比較子 > = !== * 比較子---條件運算子---關係運算子 * 比較後的結果只有一種:boolean true false * === 比較時不僅要求內容相同,也要求類型相同 * !== 比較時內容不相同,也要求類型不相同 * 五、邏輯運算子
Time of Update: 2016-07-29
複製代碼 代碼如下:function get_ip_place() { $ip=file_get_contents("http://fw.qq.com/ipaddress"); $ip=str_replace('"',' ',$ip); $ip2=explode("(",$ip); $a=substr($ip2[1],0,-2); $b=explode(",",$a); return $b; } 上面來自開源中國寫的真XXX,新聞我都不好意思發了,我們用Regex寫更簡單 來看看 複製代碼
Time of Update: 2016-07-29
Data Access Objects(Data Access Object) 樣本 ,學習php的朋友可以參考下。代碼如下:<?php /** * Data Access Objects(Data Access Object) 樣本 * * @create_date: 2010-01-04 */ class BaseDAO { var $_db = null; var $_table = null; function BaseDAO($config) { $this->_db =
Time of Update: 2016-07-29
複製代碼 代碼如下:/*資料類型之間相互轉換 * 一種是強制轉換 * setType(變數,類型); //int,integer,float,double等等。 * 這個函數將原變數的類型改變,用var_dump();可以查看變數 * * 在賦值前使用(類型)的形式,不會改變原變數的類型 * $a=(int)"123abc"; * * $變數=intval(變數或值); * $變數=floatval(變數或值); * $變數=stringval(變數或值); * *
Time of Update: 2016-07-29
命令:file_put_contents(); 命令解析:file_put_contents (PHP 5) file_put_contents -- 將一個字串寫入檔案 說明: int file_put_contents ( string filename, string data [, int flags [, resource context]] ) 和依次調用 fopen(),fwrite() 以及 fclose() 功能一樣。 參數 data
Time of Update: 2016-07-29
複製代碼 代碼如下:$t1 = explode(' ', microtime()); // ... 執行代碼 ... $t2 = explode(' ', microtime()); echo ($t2[1]-$t1[1]).'s '.($t2[0]-$t1[0]).'ms'; 其實稍微試一下, 就能發現這份代碼有個嚴重的問題. 雖然 t2 得到的時間肯定比 t1 大, 但不代表, 它的微秒數就一定比 t1 的微秒數大. 所以直接相減的話, ms 部分有可能得到的是負數. 因此,