Time of Update: 2017-02-28
PHP的引用(就是在變數或函數或對象或對象方法 等前面加上&符號)在PHP 中引用的意思是:不同的名字訪問同一個變數內容。與C語言中的指標是有差別的。C語言中的指標裡面儲存的是變數的內容,在記憶體中存放的地址。1.變數的引用PHP 的引用允許你用兩個變數來指向同一個內容。<?$a = "ABC";$b = &$a;echo $a; //這裡輸出:ABCecho $b; //這裡輸出:ABC$b = "EFG";echo $a; //這裡$a的值變為EFG 所以輸出EFGecho $b; /
Time of Update: 2017-02-28
在PHP中,對於檔案的讀取時,最快捷的方式莫過於使用一些諸如file、file_get_contents之類的函數,簡簡單單的幾行代碼就能很漂亮的完成我們所需要的功能。但當所操作的檔案是一個比較大的檔案時,這些函數可能就顯的力不從心, 下面將從一個需求入手來說明對於讀取大檔案時,常用的操作方法。需求有一個800M的記錄檔,大約有500多萬行, 用PHP返回最後幾行的內容。實現方法1. 直接採用file函數來操作由於
Time of Update: 2017-02-28
如何使用PHP來判斷一個gif圖片是否為動態圖片(動畫)?首先想到的是使用getimagesize()函數來看type值,發現都是gif,所以這個辦法是不可行的。下面是作者在網上看到的一個函數,用來判斷gif是否為動圖的。貼出來和大家分享。/* * 判斷圖片是否為動態圖片(動畫) */function isAnimatedGif($filename)
Time of Update: 2017-02-28
如果要在某個數組中刪除一個元素,可以直接用的unset,但是數組的索引不會重排:<?php $arr = array('a','b','c','d');unset($arr[1]);print_r($arr);結果是:Array ( [0] => a [2] => c [3] => d )那麼怎麼才能做到缺少的元素會被填補並且數組會被重新索引呢?答案是array_splice():<?php $arr = array('a','b','c','d');
Time of Update: 2017-02-28
定義和用法array_map() 函數返回使用者自訂函數作用後的數組。回呼函數接受的參數數目應該和傳遞給 array_map() 函數的數組數目一致。文法array_map(function,array1,array2,array3...) 參數 描述 function 必需。使用者自訂函數的名稱,或者是 null。
Time of Update: 2017-02-28
定義和用法array_walk() 函數對數組中的每個元素應用回呼函數。如果成功則返回 TRUE,否則返回 FALSE。典型情況下 function 接受兩個參數。array 參數的值作為第一個,鍵名作為第二個。如果提供了選擇性參數 userdata ,將被作為第三個參數傳遞給回呼函數。如果 function 函數需要的參數比給出的多,則每次 array_walk() 調用 function 時都會產生一個 E_WARNING 級的錯誤。這些警告可以通過在 array_walk() 調用前加上
Time of Update: 2017-02-28
本篇文章簡要分析一下在php中經常用到的exit和die的區別,有需要的朋友可以看一下。首先思考一個問題:如下代碼會向頁面顯示什嗎?<?phpdie(123);?>曾經有段時間我一直認為 頁面會顯示 123,但實踐結果告訴我,答案錯了,頁面一片空白!一直不知道為什麼,死活不輸出123,為了讓頁面輸出123,我把它修改為如下代碼:<?phpecho '123';die();?>網上的一段資料:PHP中exit()與die()的區別PHP手冊:die()Equivalent
Time of Update: 2017-02-28
(1)php對象轉數組的方法(object 轉 array):/** * object 轉 array */function object_to_array($obj){$_arr=is_object($obj)?get_object_vars($obj):$obj;foreach($_arr as
Time of Update: 2017-02-28
分享一個常用的php分頁類。有三種表現形式,具體效果圖如下:(1)(2)(3)該php分頁類的具體代碼以及使用方法如下:/***PHP分頁類 **show(2) 1 ... 62 63 64 65 66 67 68 ... 150*分頁樣式*#page{font:12px/16px arial}*#page span{float:left;margin:0px 3px;}*#page a{float:left;margin:0 3px;border:1px solid #ddd;padding:
Time of Update: 2017-02-28
偶爾在網上看到關於php的偽重載的問題,有點興趣便研究了一下。下面作者將說說php如何利用func_get_arg,func_get_args,func_num_args實現函數的偽重載問題。首先說說方法重載的好處:實現方法重載可以不用為了對不同的參數類型或參數個數,而寫多個函數。多個函數用同一個名字,但參數表,即參數的個數或(和)資料類型可以不同,調用的時候,雖然方法名字相同,但根據參數表可以自動調用對應的函數。如果我們使用reflector去查看微軟寫的.net的基底類別庫的話,我們可以發現
Time of Update: 2017-02-28
null,// 只支援一台 Master 'slave'=>array(),// 可以有多台 Slave ); /** * 建構函式 * * @param boolean $isUseCluster 是否採用 M/S 方案 */ public function __construct($isUseCluster=false){ $this->_isUseCluster =
Time of Update: 2017-02-28
array_diff( array array1, array array2 [, array …] )說明array_diff() 返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的值。注意鍵名保留不變。列子 "green", "red", "blue", "red"); $array2 = array("b" => "green&
Time of Update: 2017-02-28
單例模式:作為對象的建立模式,單例模式確保某一個類只有一個執行個體,而且自行執行個體化並向整個系統全域地提供這個執行個體。它不會建立執行個體副本,而是會向單例類內部儲存的執行個體返回一個引用。(1). 需要一個儲存類的唯一執行個體的靜態成員變數:private static $_instance;(2). 建構函式和複製函數必須聲明為私人的,防止外部程式new類從而失去單例模式的意義:private function __construct(){$this->_db =
Time of Update: 2017-02-28
什麼是設計模式:設計模式就是一個教你如何利用真實可靠的設計來組織你的代碼的模板。所有的設計模式都有一些常用的特性:一個標識(a name),一個問題陳述(a problem statement)和一個解決方案(a
Time of Update: 2017-02-28
PHP中的連貫操作看起來的確很酷,也非常的方便代碼的閱讀,當然了必須是在OOP中用才行,在過程化的程式中,就沒有必要用這種方法了。有實現這個方法的有用_CALL來實現的,而我下面寫的這個例子,則不是用_call的,大家可以擴充一下吧。下面寫的這個SQL語句組合類別,主要是用於學習的,如果有同學想拿去用,請再完善一下。/** SQL語句組合執行個體類,始發文章web開發筆記* www.chhua.com* 學慣用,非專業類* */class sql{private $sql=array(from=
Time of Update: 2017-02-28
最近開始學習PHP+MySQL,記錄下學習過程中的重點內容吧,然後考慮把開發網站的過程也寫一個系列Blog。這篇blog主要介紹了Abstract Class和Interface的區別。Abstract Class什麼是Abstract Class( 抽象類別)和C++中的抽象類別概念一樣,包含有純虛函數(Java和Php中叫abstract method)的類叫做Abstract Class。 我們有時候也把abstract Class叫做base class,因為base
Time of Update: 2017-02-28
命令鏈模式: 命令鏈模式以鬆散耦合主題為基礎,發送訊息、命令和請求,或通過一組處理常式發送任意內容。每個處理常式都會自行判斷自己能否處理請求。如果可以,該請求被處理,進程停止。您可以為系統添加或移除處理常式,而不影響其他處理常式。1.interface Validator2.{3. /**4. * The method could have any parameters.5. * @param mixed6. * @return boolean7. */8. public function
Time of Update: 2017-02-28
觀察者模式: 觀察者模式定義對象的 一對多 依賴,這樣一來,當一個對象改變狀態時,它的所有依賴者都會收到通知並自動更新! 在觀察者模式中,會改變的是主題的狀態以及觀察者的數目。用這個模式,你可以改變依賴於主題狀態的對象,卻不必改變主題。——找出程式中會變化的方面,然後將其和固定不變的方面相分離! 主題和觀察者都使用介面:觀察者利用主題的介面向主題註冊,而主題利用觀察者介面通知觀察者。這樣可以讓兩者之間運作正常,又同時具有松耦合的優點!
Time of Update: 2017-02-28
使用curl的多線程,另外curl可以佈建要求時間,遇到很慢的url資源,可以果斷的放棄,這樣沒有阻塞,另外有多線程請求,效率應該比較高下面是代碼實現:/** * curl 多線程 * @author http://www.lai18.com &nb
Time of Update: 2017-02-28
去年十月,我和 Etsy