1.應用場景
在程式設計中, 隨著開發時間的增加, 會遇到學到很多自己以前沒有用到的程式設計知識, 而這些不失為區別低中高階開發者的指標之一
2.學習/操作
1. abs()— 負數轉正數
<?php
$test = -1;
echo $test;
$test = abs($test);
echo $test;
輸出: -11
2.set_time_limit()— 設定指令碼最大執行時間
當你的頁面有大量資料時,建議使用set_time_limit()來控制執行時間,預設是30s,所以需要將執行時間加長
參考:3.unset()— 釋放給定的變數無返回值。//讀手冊,會發現內容也是比較多的
(php 4, php 5, php 7)
unset() 銷毀指定的變數。
unset() 在函式中的行為會依賴於想要銷毀的變數的型別而有所不同。
如果在函式中 unset() 乙個全域性變數,則只是區域性變數被銷毀,而在呼叫環境中的變數將保持呼叫 unset() 之前一樣的值。
如下**:
<?php
$aa = ['a'=>'a','b'=>'b','c'=>'c'];
unset($aa['a'],$aa['b']);//unset() 可以同時處理多個變數,之前不知道如此使用,可以減少**量
var_dump($aa);
輸出: d:\phpstudy\phptutorial\www\validation code\array\unset.php:4:
array (size=1)
'c' => string 'c' (length=1)
4.array_map()
— 將使用者自定義函式【也可以是php內建函式】作用到陣列中的每個值上,並返回使用者自定義函式作用後的帶有新值的陣列。//備註:至於返回的是關聯還是索引陣列取決於原陣列,下次不要碰到陣列,就只會用迴圈,效率上,
<?php
$result = [
'a'=>['v'=>1],
'b'=>['v'=>2],
'c'=>['v'=>3],
'd'=>['v'=>4],
];$count = count($result);
array_push($result, ['v'=>5]);
$res = array_map(function($v),$result);
var_dump($res);
$res = implode(",",$res);//將陣列變為字串
var_dump($res);
輸出:
d:\phpstudy\phptutorial\www\validation code\array\array_map.php:14:
array (size=5)
'a' => int 1
'b' => int 2
'c' => int 3
'd' => int 4
0 => int 5
d:\phpstudy\phptutorial\www\validation code\array\array_map.php:16:string '1,2,3,4,5' (length=9)
再者:【使用php內建函式】
$arr = array('2','3','4','5');
$arr1 = array_map('intval',$arr);//在拼接sql查詢的時候,很有用
var_dump($arr1);
$arr2 = array_map('htmlspecialchars' ,$arr);//過濾特殊字元
var_dump($arr2);
輸出:d:\phpstudy\phptutorial\www\validation code\array\array_map.php:22:
array (size=4)
0 => int 2
1 => int 3
2 => int 4
3 => int 5
d:\phpstudy\phptutorial\www\validation code\array\array_map.php:24:
array (size=4)
0 => string '2' (length=1)
1 => string '3' (length=1)
2 => string '4' (length=1)
5.函式的括號與函式名之間可有空格
如果函式【函式名與()中間有空格,也是可以正常執行的】實驗過多個函式,均是如此,但不推薦使用這種事,不利於閱讀,且易出錯,效率上暫不清楚! //之前不知道的事,不過也能猜到,就是編譯器做的事情,多個加個若干個空格匹配
<?php
$result = [
['v'=>1],
['v'=>2],
['v'=>3],
['v'=>4],
];$count = count ($result);
輸出:4 //同時可以看出儘管後面有個逗號,還是認為是逗號後面不存在元素
6.var_export()
(php 4 >= 4.2.0, php 5, php 7)
var_export — 輸出或返回乙個變數的字串表示
此函式返回關於傳遞給該函式的變數的結構資訊,它和 var_dump() 類似,不同的是其返回的表示是合法的 php **。
您可以通過將函式的第二個引數設定為 true,從而返回變數的表示。
比較 var_export() 和 var_dump().
詳情:
7.strncmp()
(php 4, php 5, php 7)
strncmp — 二進位制安全比較字串開頭的若干個字元
說明strncmp ( string $str1 , string $str2 , int $len ) : int
該函式與 strcmp() 類似,不同之處在於你可以指定兩個字串比較時使用的長度(即最大比較長度)。
注意該比較區分大小寫。
code: //框架中使用, 如: yii2.0 獲取別名的**片段
if (strncmp($alias, '@', 1))
後續補充
3.問題
tbd4.參考
後續補充
PHP程式設計師高階學習書籍參考指南
初階 基礎知識及入門 02.深入淺出mysql 資料庫開發 優化與管理維護 第2版 03.實戰nginx 取代apache的高效能web伺服器 04.redis 實戰 06.mongodb權威指南 第2版 07.linux系統命令及shell指令碼實踐指南 中階 02.tcp ip 第5版 03.大...
PHP程式設計師高階學習書籍參考指南
php程式設計師高階學習書籍參考指南 初階 基礎知識及入門 php與mysql程式設計 第4版 深入淺出mysql 資料庫開發 優化與管理維護 第2版 實戰nginx 取代apache的高效能web伺服器 redis 實戰 mongodb權威指南 第2版 linux系統命令及shell指令碼實踐指南...
如何面試php程式設計師,如何面試PHP程式設計師
乙個包含中英文的字串如何獲得它的自然長度 看看ta是否有encoding的知識和意識 問一問什麼是orm,有時候會問這個詞的英文全稱是什麼,問問ta對於orm有什麼個人的看法?看看ta學習細不細,有沒有技術判斷,php開發人員應該知道什麼時候使用orm 問一問假如ta要自己去實現乙個framewor...