1. php函式的任意數目的引數
您可能知道php允許你定義乙個預設引數的函式。但您可能並不知道php還允許你定義乙個完全任意的引數的函式
下面是乙個示例向你展示了預設引數的函式:
// 兩個預設引數的函式
function foo($arg1 = '', $arg2 = 程式設計客棧'')
foo('hello','world');
/* 輸出:
arg1: hello
arg2: world
*/foo();
/* 輸出:
arg1:
arg2:
*/現在我們來看一看乙個不定引數的函式,其使用到了func_get_args()方法:
// 是的,形參列表為空
function foo()
}foo();
/* 什麼也不會輸出 */
foo('hello');
/* 輸出
arg1: hello
*/foo('hello', 'world', 'again');
/* 輸出
arg1: hello
arg2: world
arg3: again
*/2. glob() 查詢檔案
有很多php的函式都有乙個比較長的自解釋的函式名,但是,當您看到glob() 的時候,您可能並不知道這個函式是用來幹什麼的,除非您對它已經很熟悉了。
你可以認為這個函式就好?scandir() 一樣,其可以用來查詢檔案。
// 取得所有的字尾為php的檔案
$files = glob('*.php');
print_r($files);
/* 輸出:
array
([0] => phptest.php
[1] => pi.php
[2] => post_output.php
[3] => test.php
)*/您還可以查詢多種字尾名
// 取php檔案和txt檔案
$files = glob('*.', glob_brace);
print_r($files);
/* 輸出:
array
([0] => phptest.php
[1] => pi.php
[2] => post_output.php
[3] => test.php
[4] => log.txt
[5] => test.txt
)*/您還可以加上路徑:
/* 輸出:
)*/如果你想得到絕對路徑,你可以呼叫?realpath() 函式:
)*/3. 檢視記憶體使用情況
觀察你程式的記憶體使用能夠讓你更好的優化你的**。
php 是有垃圾**機制的,而且有一套很複雜的記憶體管理機制。你可以知道你的指令碼所使用的記憶體情況。要知道當前記憶體使用情況,你可以使用?memory_get_usage() 函式,如果你想知道使用記憶體的峰值,你可以呼叫memory_get_peak_usage() 函式。
echo "initial: ".memory_get_usage()." bytes \n";
/* 輸出
initial: 361400 bytes
*/// 使用記憶體
for ($i = 0; $i < 100000; $i++)
// 刪除一半的記憶體
for ($i = 0; $i < 100000; $i++)
echo "final: ".memory_get_usage()." bytes \n";
/* prints
final: 885912 bytes
*/echo "peak: ".memory_get_peak_usage()." bytes \n";
/* 輸出峰值
peak: 13687072 bytes
*/4. 檢視cpu使用情況
使用?getrusage() 函式可以讓你知道cpu的使用情況。注意,這個功能在windows下不可用。
print_r(getrusage());
/* 輸出
array
([ru_oublock] => 0
[ru_inblock] => 0
[ru_muleikishsgsnd] => 2
[ru_msgrcv] => 3
[ru_maxrss] => 12692
[ru_ixrss] => 764
[ru_idrss] => 3864
[ru_minflt] => 94
[ru_majflt] => 0
[ru_nsignals] => 1
[ru_nvcsw] => 67
[程式設計客棧 => 4
[ru_nswap] => 0
[ru_utime.tv_usec] => 0
[ru_utime.tv_sec] => 0
[ru_stime.tv_usec] => 6269
[ru_stime.tv_sec] => 0
)*/這個結構看上出很晦澀,除非你對cpu很了解。下面一些解釋:
ru_oublock: 塊輸出操作
ru_inblock: 塊輸入操作
ru_msgsnd: 傳送的message
ru_msgrcv: 收到的message
ru_maxrss: 最大駐留集大小
ru_ixrss: 全部共享記憶體大小
ru_idrss:全部非共享記憶體大小
ru_minflt: 頁**
ru_majflt: 頁失效
ru_nsignals: 收到的訊號
ru_nvcsw: 主動上下文切換
ru_nivcsw: 被動上下文切換
ru_nswap: 交換區
ru_utime.tv_usec: 使用者態時間 (microseconds)
ru_utime.tv_sec: 使用者態時間(seconds)
ru_stime.tv_usec: 系統核心時間 (www.cppcns.commicroseconds)
ru_stime.tv_sec: 系統核心時間?(seconds)
以上就是分享給大家的php實用功能,希望對大家的學習有所幫助。
本文標題: 四個php非常實用的功能
本文位址:
shell非常實用的函式功能
與大多數開發語言一樣,shell同樣支援函式功能。函式就是給一段 起乙個別名,也就是函式名,定義函式名的規則與定義變數名的規則基本一致,但是函式名執行以數字開頭。使用函式可以方便地封裝某種特定的功能 在呼叫函式時不需要關心它是如何實現的,只需知道這個函式是做什麼的,就可以直接呼叫它完成某項功能。函式...
php的四個fetch語句
先給乙個表 man name age aa aa bb bb cc cc cc dd sql查詢 conn mysqli connect 省略 sql select from man result mysqli query conn,sql 1 mysqli fetch row query 返回 第...
非常實用的10個PHP高階應用技巧
php 獨特的語法混合了 c j a perl 以及 php 自創新的語法。它可以比 cgi或者perl更快速的執行動態網頁。用php做出的動態頁面與其他的程式語言相比,php是將程式嵌入到html文件中去執行,執行效率比完全生成html標記的cgi要高許多。下面介紹了十個php高階應用技巧。1,使...