Heim  >  Artikel  >  Backend-Entwicklung  >  Mehrere praktische Funktionen von PHP

Mehrere praktische Funktionen von PHP

墨辰丷
墨辰丷Original
2018-06-07 10:47:151676Durchsuche

In diesem Artikel werden hauptsächlich einige praktische Funktionen von PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

1. Beliebig viele Parameter für PHP-Funktionen

Sie wissen vielleicht, dass PHP Ihnen die Definition einer Funktion mit Standardparametern ermöglicht. Aber Sie wissen vielleicht nicht, dass Sie mit PHP auch eine Funktion mit völlig beliebigen Parametern definieren können
Hier ist ein Beispiel, das Ihnen eine Funktion mit Standardparametern zeigt:

// 两个默认参数的函数
function foo($arg1 = '', $arg2 = '') {
echo "arg1: $arg1\n";
echo "arg2: $arg2\n";
}
foo('hello','world');
/* 输出:
arg1: hello
arg2: world
*/
foo();
/* 输出:
arg1:
arg2:
*/

Jetzt werfen wir einen Blick auf eine Funktion mit unbestimmten Parametern , die die Methode func_get_args() verwendet:

// 是的,形参列表为空
function foo() {
// 取得所有的传入参数的数组
$args = func_get_args();
foreach ($args as $k => $v) {
echo "arg".($k+1).": $v\n";
}
}
foo();
/* 什么也不会输出 */
foo('hello');
/* 输出
arg1: hello
*/
foo('hello', 'world', 'again');
/* 输出
arg1: hello
arg2: world
arg3: again
*/

2. Glob() Find Files Es gibt viele PHP-Funktionen, die einen relativ langen, selbsterklärenden Funktionsnamen haben, aber wenn Sie sehen glob() verwenden, wissen Sie wahrscheinlich nicht, was diese Funktion tut, es sei denn, Sie sind bereits damit vertraut.
Sie können sich diese Funktion als ?scandir() vorstellen, die zum Suchen von Dateien verwendet werden kann.

// 取得所有的后缀为PHP的文件
$files = glob('*.php');
print_r($files);
/* 输出:
Array
(
[0] => phptest.php
[1] => pi.php
[2] => post_output.php
[3] => test.php
)
*/

Sie können auch nach verschiedenen Suffixen suchen

// 取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
)
*/


Sie können auch den Pfad hinzufügen:

$files = glob('../images/a*.jpg');
print_r($files);
/* 输出:
Array
(
[0] => ../images/apple.jpg
[1] => ../images/art.jpg
)
*/

Wenn Sie den absoluten Pfad erhalten möchten, können Sie anrufen ?realpath () Funktion:

$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. Speichernutzung anzeigen Die Beobachtung der Speichernutzung Ihres Programms kann Ihnen helfen, Ihren Code besser zu optimieren.
PHP verfügt über einen Garbage-Collection-Mechanismus und einen sehr komplexen Speicherverwaltungsmechanismus. Sie können herausfinden, wie viel Speicher Ihr Skript verwendet. Um die aktuelle Speichernutzung zu erfahren, können Sie die Funktion „memory_get_usage()“ verwenden. Wenn Sie die maximale Speichernutzung wissen möchten, können Sie die Funktion „memory_get_peak_usage()“ aufrufen.

echo "Initial: ".memory_get_usage()." bytes \n";
/* 输出
Initial: 361400 bytes
*/
// 使用内存
for ($i = 0; $i < 100000; $i++) {
$array []= md5($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. Überprüfen Sie die CPU-Auslastung
Mit der Funktion ?getrusage() können Sie die CPU-Auslastung ermitteln. Beachten Sie, dass diese Funktion unter Windows nicht verfügbar ist.

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
)
*/

Diese Struktur erscheint sehr unklar, es sei denn, Sie kennen die CPU sehr gut. Nachfolgend einige Erläuterungen:

ru_oublock: Blockausgabevorgang
ru_inblock: Blockeingabevorgang
ru_msgsnd: gesendete Nachricht
ru_msgrcv: empfangene Nachricht
ru_maxrss: maximale Größe des residenten Aufbewahrungssatzes
ru_ixrss: Gesamtgröße des gemeinsam genutzten Speichers
ru_idrss: Gesamtgröße des nicht gemeinsam genutzten Speichers
ru_minflt: Seitenrecycling
ru_majflt: Seitenungültigmachung
ru_nsignals: Empfangene Signale
ru_nvcsw: Aktive Kontextumschaltung
ru_nivcsw: Passive Kontextumschaltung
ru_nswap: Swap-Bereich
ru_utime.tv_usec: Benutzermoduszeit (Mikrosekunden)
ru_utime.tv_sec: Benutzermoduszeit (Sekunden)
ru_stime.tv_usec: Systemkernelzeit (Mikrosekunden)
ru_stime.tv_sec: Systemkernzeit? (Sekunden)

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er kann allen helfen Lernen hilft.

Verwandte Empfehlungen:

Verwendung des PHP-Befehlsraum-Namespace und Verwendung (Beispiel)

register_shutdown_function in PHP Funktionseinführung und -verwendung (Fall)

Unterschiedliche Verwendung des Headers in PHP (Fall)

Das obige ist der detaillierte Inhalt vonMehrere praktische Funktionen von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn