四個PHP非常實用的功能

2022-10-06 10:18:11 字數 3598 閱讀 6780

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,使...