天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

8個(gè)必備的PHP功能實(shí)例代碼

做過php開發(fā)的程序員應(yīng)該清楚,php中有很多內(nèi)置的功能,掌握了它們,可以幫助你在做php開發(fā)時(shí)更加得心應(yīng)手,本文將分享8個(gè)開發(fā)必備的php功能,個(gè)個(gè)都非常實(shí)用,希望各位php開發(fā)者能夠掌握。
1、傳遞任意數(shù)量的函數(shù)參數(shù)
2、使用glob()查找文件
3、獲取內(nèi)存使用情況信息
4、獲取CPU使用情況信息
5、獲取系統(tǒng)常量
6、生成唯一的id
7、序列化
8、字符串壓縮

1、傳遞任意數(shù)量的函數(shù)參數(shù) 我們?cè)?NET或者Java編程中,一般函數(shù)參數(shù)個(gè)數(shù)都是固定的,但是php允許你使用任意個(gè)數(shù)的參數(shù)。下面這個(gè)示例向你展示了php函數(shù)的默認(rèn)參數(shù):
復(fù)制代碼 代碼如下:
// 兩個(gè)默認(rèn)參數(shù)的函數(shù) 
function foo($arg1 = ", $arg2 = ") { 
echo "arg1: $arg1/n"; 
echo "arg2: $arg2/n"; 

foo('hello','world'); 
/* 輸出:
arg1: hello
arg2: world
*/ 
foo(); 
/* 輸出:
arg1:
arg2:
*/ 
下面這個(gè)示例是php的不定參數(shù)用法,其使用到了 func_get_args()方法: 
// 是的,形參列表為空 
function foo() { 
// 取得所有的傳入?yún)?shù)的數(shù)組 
$args = func_get_args(); 
foreach ($args as $k => $v) { 
echo "arg".($k+1).": $v/n"; 


foo(); 
/* 什么也不會(huì)輸出 */ 
foo('hello'); 
/* 輸出
arg1: hello
*/ 
foo('hello', 'world', 'again'); 
/* 輸出
arg1: hello
arg2: world
arg3: again
*/

2、使用glob()查找文件 大部分php函數(shù)的函數(shù)名從字面上都可以理解其用途,但是當(dāng)你看到 glob() 的時(shí)候,你也許并不知道這是用來做什么的,其實(shí)glob()和scandir() 一樣,可以用來查找文件,請(qǐng)看下面的用法:
復(fù)制代碼 代碼如下:
// 取得所有的后綴為php的文件 
$files = glob('*.php'); 
print_r($files); 
/* 輸出:
Array
(
[0] => phptest.php
[1] => pi.php
[2] => post_output.php
[3] => test.php
)
*/

還可以查找多種后綴名:
復(fù)制代碼 代碼如下:
// 取php文件和TXT文件 
$files = glob('*.{php,txt}', 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
)
*/

還可以加上路徑:
復(fù)制代碼 代碼如下:
$files = glob('../images/a*.jpg'); 
print_r($files); 
/* 輸出:
Array
(
[0] => ../images/apple.jpg
[1] => ../images/art.jpg
)
*/

如果你想得到絕對(duì)路徑,你可以調(diào)用 realpath() 函數(shù):
復(fù)制代碼 代碼如下:
$files = glob('../images/a*.jpg'); 
// applies the function to each array element 
$files = array_map('realpath',$files); 
print_r($files); 
/* output looks like:
Array
(
[0] => C:/wamp/www/images/apple.jpg
[1] => C:/wamp/www/images/art.jpg
)
*/

3、獲取內(nèi)存使用情況信息 php的內(nèi)存回收機(jī)制已經(jīng)非常強(qiáng)大,你也可以使用php腳本獲取當(dāng)前內(nèi)存的使用情況,調(diào)用memory_get_usage() 函數(shù)獲取當(dāng)期內(nèi)存使用情況,調(diào)用memory_get_peak_usage() 函數(shù)獲取內(nèi)存使用的峰值。參考代碼如下:
復(fù)制代碼 代碼如下:
echo "Initial: ".memory_get_usage()." bytes /n"; 
/* 輸出
Initial: 361400 bytes
*/ 
// 使用內(nèi)存 
for ($i = 0; $i < 100000; $i++) { 
$array []= md5($i); 

// 刪除一半的內(nèi)存 
for ($i = 0; $i < 100000; $i++) { 
unset($array[$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使用情況信息 獲取了內(nèi)存使用情況,也可以使用php的 getrusage()獲取CPU使用情況,該方法在windows下不可用。
復(fù)制代碼 代碼如下:
print_r(getrusage()); 
/* 輸出
Array
(
[ru_oublock] => 0
[ru_inblock] => 0
[ru_msgsnd] => 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
[ru_nivcsw] => 4
[ru_nswap] => 0
[ru_utime.tv_usec] => 0
[ru_utime.tv_sec] => 0
[ru_stime.tv_usec] => 6269
[ru_stime.tv_sec] => 0
)
*/

這個(gè)結(jié)構(gòu)看上出很晦澀,除非你對(duì)CPU很了解。下面一些解釋: ru_oublock: 塊輸出操作 ru_inblock: 塊輸入操作 ru_msgsnd: 發(fā)送的message ru_msgrcv: 收到的message ru_maxrss: 最大駐留集大小 ru_ixrss: 全部共享內(nèi)存大小 ru_idrss:全部非共享內(nèi)存大小 ru_minflt: 頁回收 ru_majflt: 頁失效 ru_nsignals: 收到的信號(hào) ru_nvcsw: 主動(dòng)上下文切換 ru_nivcsw: 被動(dòng)上下文切換 ru_nswap: 交換區(qū) ru_utime.tv_usec: 用戶態(tài)時(shí)間 (microseconds) ru_utime.tv_sec: 用戶態(tài)時(shí)間(seconds) ru_stime.tv_usec: 系統(tǒng)內(nèi)核時(shí)間 (microseconds) ru_stime.tv_sec: 系統(tǒng)內(nèi)核時(shí)間?(seconds) 要看到你的腳本消耗了多少CPU,我們需要看看"用戶態(tài)的時(shí)間"和"系統(tǒng)內(nèi)核時(shí)間"的值。秒和微秒部分是分別提供的,您可以把微秒值除以100萬,并把它添加到秒的值后,可以得到有小數(shù)部分的秒數(shù)。
復(fù)制代碼 代碼如下:
// sleep for 3 seconds (non-busy) 
sleep(3); 
$data = getrusage(); 
echo "User time: ". 
($data['ru_utime.tv_sec'] + 
$data['ru_utime.tv_usec'] / 1000000); 
echo "System time: ". 
($data['ru_stime.tv_sec'] + 
$data['ru_stime.tv_usec'] / 1000000); 
/* 輸出
User time: 0.011552
System time: 0
*/

是不占用系統(tǒng)時(shí)間的,我們可以來看下面的一個(gè)例子:
復(fù)制代碼 代碼如下:
// loop 10 million times (busy) 
for($i=0;$i<10000000;$i++) { 

$data = getrusage(); 
echo "User time: ". 
($data['ru_utime.tv_sec'] + 
$data['ru_utime.tv_usec'] / 1000000); 
echo "System time: ". 
($data['ru_stime.tv_sec'] + 
$data['ru_stime.tv_usec'] / 1000000); 
/* 輸出
User time: 1.424592
System time: 0.004204
*/

這花了大約14秒的CPU時(shí)間,幾乎所有的都是用戶的時(shí)間,因?yàn)闆]有系統(tǒng)調(diào)用。傳統(tǒng)時(shí)間是CPU花費(fèi)在系統(tǒng)調(diào)用上的上執(zhí)行內(nèi)核指令的時(shí)間。下面是一個(gè)例子:
復(fù)制代碼 代碼如下:
$start = microtime(true); 
// keep calling microtime for about 3 seconds 
while(microtime(true)

主站蜘蛛池模板: 亚洲人成电影网站在线观看 | 亚洲精品久久久久AV无码林星阑 | 日本理论片和搜子同居的日子2 | 国产午夜在线观看视频播放 | 最新高清无码专区在线视频 | qvod电影| 国内极度色诱视频网站 | 美女靠逼漫画 | 亚洲中文字幕永久在线 | 极品美女穴| 欧美日韩一区二区三区四区 | 国产精品久久国产三级国不卡顿 | 亚洲欧美国产视频 | 特污兔午夜影视院 | 米奇在线8888在线精品视频 | 伊人网综合网 | 四虎精品久久 | 国产亚洲日韩另类在线观看 | 久久精品国产欧美成人 | 媚药调教被撑到合不拢h | 欧美久久综合性欧美 | 免费看的一级毛片 | 国产精品女上位在线观看 | 最近韩国HD免费观看国语 | 越南美女内射BBWXZ | 精品人妻无码一区二区三区蜜桃臀 | 欧美黄色精品 | 同居了嫂子在线观看 | 伦理片a在线线2 | 嗯啊…嗯np男男双性总受 | 国产嫩草在线观看 | 日韩专区亚洲国产精品 | 好湿好滑好硬好爽好深视频 | 一本道mw高清码二区三区 | 亚洲精品色婷婷在线蜜芽 | 日本免费一本天堂在线 | 色婷婷国产精品视频一区二区 | 精品国产自在天天线2019 | 99国产强伦姧在线看RAPE | 7m凹凸国产刺激在线视频 | 日本无码欧美激情在线视频 |