Time of Update: 2018-12-08
重載:同一個類中,函數名一樣,傳回值或者參數類型,個數不一樣的叫做重載。 覆蓋:同名函數,同傳回值類型,同參數的叫做覆蓋。指的是子類對父類中方法的覆蓋。 PHP不支援方法和操作符重載。JAVA不支援操作符的重載(但是“+”實際上是一種操作符重載)。 複製代碼 代碼如下:<?php Class Father { public function fmeth1() { echo "fmeth1()...<br>"; } //public function fmeth1($str1)
Time of Update: 2018-12-08
介紹 裝飾者模式動態地將責任附加到對象上。若要擴充功能,裝飾者提供了比繼承更有彈性的替代方案。 思維導圖 有這樣一個項目,做一個餐廳訂餐系統。起初的代碼結構是這樣的。前面有很多Beverage的繼承類,現在遇到的問題是牛奶的價錢上漲了,那麼所有相關的類,我們都要進行調整,比如Milk,SugarAndMilk類,這種類還有很多,我們需要逐個去修改類中的方法——開發人員每次都做這種事情,要瘋了!所以我們要改變現有的結構。以下的圖都是簡圖,實際的圖,可沒有這麼簡單。
Time of Update: 2018-12-08
explode() 函數把字串分割為數組。 文法 explode(separator,string,limit) 參數描述separator必需。規定在哪裡分割字串。string必需。要分割的字串。limit可選。規定所返回的數組元素的最大數目。說明 本函數返回由字串組成的數組,其中的每個元素都是由 separator 作為邊界點分割出來的子字串。 separator 參數不能是Null 字元串。如果 separator 為空白字串(""),explode() 將返回 FALSE。如果
Time of Update: 2018-12-08
JS中encodeURIComponent函數給中文編碼後,如何用php解碼?? 前提:編碼前的中文可能是gbk,gb2312,utf-8等。 複製代碼 代碼如下:urldecode() iconv() 在JS中使用了encodeURIComponent對中文進行編碼在PHP中使用iconv('UTF-8','gb2312',$q);就可以得到你需要的字串了,其中gb2312根據你實際應用來定如還不明白為什麼看下面的文章 URL編碼轉換,escape() encodeURI()
Time of Update: 2018-12-08
第1種方法: 複製代碼 代碼如下:function get_extension($file) { substr(strrchr($file, '.'), 1); } 第2種方法: 複製代碼 代碼如下:function get_extension($file) { return substr($file, strrpos($file, '.')+1); } 第3種方法: 複製代碼 代碼如下:function get_extension($file) { return end(explode('.'
Time of Update: 2018-12-08
有七個魔術常量它們的值隨著它們在代碼中的位置改變而改變。例如 __LINE__ 的值就依賴於它在指令碼中所處的行來決定。這些特殊的常量不區分大小寫,如下: 名稱說明__LINE__檔案中的當前行號。__FILE__檔案的完整路徑和檔案名稱。如果用在被包含檔案中,則返回被包含的檔案名稱。自 PHP 4.0.2 起,__FILE__
Time of Update: 2018-12-08
Regex(Regular Expression) Regex系統: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PCRE(Perl相容Regex,Perl Compatible Regular Expressions) PCRE文法: 1.定界符 必須成對出現,可以使用除0-9a-zA-Z\以外的任何字元 2.原子 1.正則需要匹配的可見和不可見字元都是原子 2.一個Regex最少含有一個原子
Time of Update: 2018-12-08
作為命令語言,它互動式解釋和執行使用者輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作為程式設計語言,它定義了各種變數和參數,並提供了許多在高階語言中才具有的控制結構,包括迴圈和分支。 PHP經過長時間的發展,很多使用者都很瞭解PHP了,這裡我發表一下個人理解,和大家討論討論。大多數情況下,我使用 exec() 命令和資料數組處理所有東西。或者對更簡單的命令使用 shell_exec(),尤其是不關心結果時。如果僅需返回一個 PHP shell指令碼,我就使用 passthru()
Time of Update: 2018-12-08
preg_filter (PHP 5 >= 5.3.0) preg_filter — 執行一個Regex搜尋和替換 mixed preg_filter ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) preg_filter()等價於preg_replace() 除了它僅僅返回(可能經過轉化)與目標匹配的結果.
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php /* * Captcha Class base on PHP GD Lib * @author Design * @version 1.0 * @demo * include('captchaClass.php'); * $captchaDemo=new Captcha(); * $captchaDemo->createImage(); */ class Captcha{ //@定義驗證碼圖片高度 private $height;
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php class FormModel extends Model { // 自動驗證設定 /* * 一:自動驗證 自動驗證的定義是這樣的:array(field,rule,message,condition,type,when,params) field:代表是資料庫的欄位名; rule:代表是規則; 它的值要看type的類型而定; 如果是condition 是function(callback),rule是一個函數名 condition
Time of Update: 2018-12-08
介紹 觀察者模式定義對象的一對多依賴,這樣一來,當一個對象改變狀態時,它的所有依賴者都會收到通知並自動更新! 設計原則 在觀察者模式中,會改變的是主題的狀態以及觀察者的數目。用這個模式,你可以改變依賴於主題狀態的對象,卻不必改變主題。——找出程式中會變化的方面,然後將其和固定不變的方面相分離! 主題和觀察者都使用介面:觀察者利用主題的介面向主題註冊,而主題利用觀察者介面通知觀察者。這樣可以讓兩者之間運作正常,又同時具有松耦合的優點! ——針對介面編程,不針對實現編程! 。 觀察者模式利用“組合”
Time of Update: 2018-12-08
php文法簡單,應用也非常好,而且類庫強大,確實能寫出很強大的伺服器端。對於我這種只需要小功能伺服器的人來說,再好不過了。 單純的說學習php,我覺得還是看手冊的好。花了幾天時間看了看文法,因為有編程基礎,所以現在看起來就比較快了。剛用php寫完一個簡單的伺服器,當然是有目的,準備用來支援一個訂票系統的用戶端。下面是我學習過程的筆記。以後也好有個回顧。 當不存在某個類的對象時,可以通過範圍分辨符(::)來調用某個類中的方法; 訪問基類中的方法時可以寫成 parent::method(
Time of Update: 2018-12-08
這裡提供兩種方法供選擇:第一:手寫代碼。第二:利用HttpClient php類庫 第一種方法: 複製代碼 代碼如下:<?PHP $flag = 0; //要post的資料 $argv = array( 'var1'=>'abc', 'var2'=>'你好嗎'); //構造要post的字串 foreach ($argv as $key=>$value) { if ($flag!=0) { $params .= "&"; $flag = 1; }
Time of Update: 2018-12-08
phpinfo() 功能描述:輸出 PHP 環境資訊以及相關的模組、WEB 環境等資訊。 危險等級:中 passthru() 功能描述:允許執行一個外部程式並回顯輸出,類似於 exec()。 危險等級:高 exec() 功能描述:允許執行一個外部程式(如 UNIX Shell 或 CMD 命令等)。 危險等級:高 system() 功能描述:允許執行一個外部程式並回顯輸出,類似於 passthru()。 危險等級:高 chroot() 功能描述:可改變當前 PHP
Time of Update: 2018-12-08
可以在頁面定義一個調用方法,如下: 複製代碼 代碼如下:function getData(){ $.getJSON("http://123.123.123.123/?callback=?", { "m":"data",// 指定php的檔案名稱字 "act":"getdata",// 指定php檔案中的方法 "name":"問題兒童"// 傳入的參數 }, function(data) { // 獲得傳回值 } }); }
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php /* *用穿越火線快速入門php物件導向! *php目前已經成為國內的主流web developer的首選開發語言,其強大的物件導向容易使初學者找不到思緒,一頭霧水! *,藉助此文希望對初學者有所協助,假設Crossfire用php來開發. * 1類與對象 */ class Crossfire { public $Category='1,2,3'; //槍械種類,3個選擇武器類別 public
Time of Update: 2018-12-08
你不必嚴格遵守這些原則,違背它們也不會被處以宗教刑罰。但你應當把這些原則看成警鈴,若違背了其中的一條,那麼警鈴就會響起 。 ----- Arthur J.Riel (1)所有資料都應該隱藏在所在的類的內部。 (2)類的使用者必須依賴類的共有介面,但類不能依賴它的使用者。 (3)盡量減少類的協議中的訊息。 (4)實現所有類都理解的最基本公有介面[例如,拷貝操作(深拷貝和淺拷貝)、相等性判斷、正確輸出內容、從ASCII描述解析等等]。
Time of Update: 2018-12-08
1. If a method c++an be static, declare it static. Speed improvement is by a factor of 4. 如果一個方法可靜態化,就對它做靜態聲明。速率可提升至4倍。 2. echo is faster than print. echo 比 print 快。 3. Use echo's multiple parameters instead of string concatenation.
Time of Update: 2018-12-08
1.echo和print的區別 PHP中echo和print的功能基本相同(輸出),但是兩者之間還是有細微差別的。echo輸出後沒有傳回值,但print有傳回值,當其執行失敗時返回flase。因此可以作為一個普通函數來使用,例如執行下面的代碼後變數$r的值將為1。 $r = print "Hello World"; 這意味著print可用在一些複雜的運算式中,而echo則不行。但是,因為echo語句不要求返回任何數值,所已在代碼中echo語句的運行效率要略微快於print語句。