摘要:是語句不是函數(shù),有返回值,只能輸出一個變量,不需要圓括號。這些特性使成為理想的數(shù)據(jù)交換語言。如果子類中定義了構造函數(shù)則不會隱式調用其父類的構造函數(shù)。要執(zhí)行父類的構造函數(shù),需要在子類的構造函數(shù)中調用。
PHP HTTP Keep-Alive的作用 作用
Keep-Alive:使客戶端到服務器端的連接持續(xù)有效,當出現(xiàn)對服務器的后繼請求時,Keep-Alive功能避免了建立或者重新建立連接。Web服務器,基本上都支持HTTP Keep-Alive。
缺點對于提供靜態(tài)內容的網(wǎng)站來說,這個功能通常很有用。但是,對于負擔較重的網(wǎng)站來說,雖然為客戶保留打開的連 接有一定的好處,但它同樣影響了性能,因為在處理暫停期間,本來可以釋放的資源仍舊被占用。當Web服務器和應用服務器在同一臺機器上運行時,Keep-Alive功能對資源利用的影響尤其突出。
解決Keep-Alive: timeout=5, max=100
timeout:過期時間5秒(對應httpd.conf里的參數(shù)是:KeepAliveTimeout),
max:是最多一百次請求,強制斷掉連接。就是在timeout時間內又有新的連接過來,同時max會自動減1,直到為0,強制斷掉。
php數(shù)組函數(shù)常見的那些? 數(shù)組遍歷函數(shù)list(); //不是真正的函數(shù),而是PHP的語言結構,用于給一組變量賦值,僅能用于索引數(shù)組 each(); //返回數(shù)組當前元素的鍵值對,并將指針移動到下一個元素位置 while(); //可配合list或each使用:while(list($key, $value) = each($arr)){each $key, $value; }數(shù)組內部指針控制
current(); //讀取指針位置的內容 key(); //讀取當前指針指向內容的索引值 next(); //將數(shù)組中的內部指針指向下一單元 prev(); //將數(shù)組內部指針倒回一位 end(); //將數(shù)組內部指針指向最后一個元素 reset(); //將目前指針指向第一個索引位置數(shù)組鍵值操作函數(shù)
array_values($arr); //獲得數(shù)組的值 array_keys($arr); //獲得數(shù)組的鍵名 array_flip($arr); //數(shù)組中的值與鍵名互換(如果有重復前面的會被后面的覆蓋) array_search("PHP",$arr); //檢索給定的值,加true則是嚴格類型檢查 array_reverse($arr); //將數(shù)組中的元素翻轉(前后順序) in_array("apple", $arr); //在數(shù)組中檢索apple array_key_exists("apple", $arr); // 檢索給定的鍵名是否存在數(shù)組中 array_count_values($arr); // 統(tǒng)計數(shù)組中所有值出現(xiàn)的次數(shù) array_unique($arr); // 刪除數(shù)組中重復的值數(shù)組回調函數(shù)
array_filter(); //使用回調函數(shù)過濾數(shù)組中的元素,如果回調返回true則當前的元素被包含到返回數(shù)組中 array_walk(); //回調函數(shù)處理數(shù)組,自定義函數(shù)要有兩個參數(shù),本函數(shù)第三個參數(shù)可以作為回調第三個參數(shù)返回 array_map(); //可以處理多個數(shù)組,每個數(shù)組的長度應該相同,傳入數(shù)組的個數(shù)和回調函數(shù)參數(shù)個數(shù)應該一致數(shù)組的分段和填充
array_slice($arr, 0, 3); //將數(shù)組中的一段取出,此函數(shù)忽略鍵名(數(shù)組的分段) array_splice($arr, 0, 3,array("black","maroon")); //將數(shù)組中的一段取出,返回的序列從原數(shù)組中刪除 array_chunk($arr, 3, TRUE); //將一個數(shù)組分割成多個,TRUE為保留原數(shù)組的鍵名(分割多個數(shù)組)數(shù)組與棧,列隊
array_push($arr, "apple", "pear"); //將一個或多個元素壓入數(shù)組棧的末尾(入棧),返回入棧元素的個數(shù) array_pop($arr); // 將數(shù)組棧的最后一個元素彈出(出棧) array_shift($arr); //數(shù)組中第一個元素移出并返回(長度減1,其他元素向前移動一位,數(shù)字鍵名改為從零計數(shù),文字鍵名不變) array_unshift($arr,"a",array(1,2)); //在數(shù)組的開頭插入一個或多個元素數(shù)組的排序
sort($arr); //由小到大,忽略鍵名 rsort($arr); //由大到小,忽略鍵名 asort($arr); //由小到大,保留鍵名 arsort($arr); //由大到小,保留鍵名 ksort($arr); //按照鍵名正序排序 krsort($arr); //按照鍵名逆序排序數(shù)組的計算
array_sum($arr); //對數(shù)組內部的所有元素做求和運算(數(shù)組元素的求和) array_merge($arr1, $arr2); //合并兩個或多個(相同字符串鍵名,后面覆蓋前面,相同的數(shù)字鍵名,后面的附加到后面) array_diff($arr1, $arr2); //返回差集結果數(shù)組 array_diff_assoc($arr1, $arr2, $arr3); //返回差集結果數(shù)組,鍵名也做比較 array_intersect($arr1, $arr2); //返回交集結果數(shù)組 array_intersect_assoc($arr1, $arr2); //返回交集結果數(shù)組,鍵名也做比較其他的數(shù)組函數(shù)
array_unique($arr); //移除數(shù)組中重復的值,新的數(shù)組中會保留原始的鍵名 shuffle($arr); // 將數(shù)組的順序打亂PHP中幾個輸出函數(shù)echo,print(),print_r(),sprintf(),var_dump()的區(qū)別
echo:是語句不是函數(shù),沒有返回值,可輸出多個變量值,不需要圓括號。不能輸出數(shù)組和對象,只能打印簡單類型(如int,string)。
print:是語句不是函數(shù),有返回值 1 ,只能輸出一個變量,不需要圓括號。不能輸出數(shù)組和對象,只能打印簡單類型(如int,string)。
print_r:是函數(shù),可以打印復合類型,例如:stirng、int、float、array、object等,輸出array時會用結構表示,而且可以通過print_r($str,true)來使print_r不輸出而返回print_r處理后的值
printf:是函數(shù),把文字格式化以后輸出(參看C語言)
sprintf:是函數(shù),跟printf相似,但不打印,而是返回格式化后的文字(該函數(shù)把格式化的字符串寫寫入一個變量中,而不是輸出來),其他的與printf一樣。
$str = "Hello"; $number = 123; $txt = sprintf("%s world. Day number %u",$str,$number); //輸出: Hello world. Day number 123 var_dump():函數(shù),輸出變量的內容、類型或字符串的內容、類型、長度。常用來調試。
可以通過function_exists("函數(shù)名稱")進行測試
var_dump(function_exists("print")); //bool(false) var_dump(function_exists("echo")); //bool(false) var_dump(function_exists("print_r")); //bool(trueheredoc
Heredoc在正規(guī)的PHP文檔中和技術書籍中一般沒有詳細講述。他是一種Perl風格的字符串輸出技術。使用heredoc技術可以實現(xiàn)界面與代碼的準分離,比如phpwind模板。
heredoc的語法是用”<<<”加上自己定義成對的標簽,在標簽范圍內的文字視為一個字符串
以<<
位于開始標記和結束標記之間的變量可以被正常解析,但是函數(shù)則不可以。在heredoc中,變量不需要用連接符 . 或 , 來拼接,比如:
$a=2; $b= <<heredoc常用在輸出包含大量HTML語法文檔的時候。他要比傳統(tǒng)的echo輸出精煉很多,如下所示:
function getHtml(){ echo ""; echo "Title "; echo "Content"; echo ""; } function getHtml(){ echo <<Title Content