ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルの 9 つの便利な機能

PHP_PHP チュートリアルの 9 つの便利な機能

WBOY
WBOYオリジナル
2016-07-13 17:44:321161ブラウズ

1.関数のパラメータは任意の数

PHP ではデフォルトのパラメーターを使用して関数を定義できることはご存知かもしれません。しかし、PHP では完全に任意のパラメーターを使用して関数を定義できることはご存知ないかもしれません

これはデフォルトパラメータを持つ関数を示す例です:

// 2 つのデフォルトパラメータを持つ関数

関数 foo($arg1 = , $arg2 = ) {

echo "arg1: $arg1 ";

echo "arg2: $arg2 ";

}

foo(hello,world);

/* 出力:

arg1: こんにちは

引数2:ワールド

*/

ふー();

/* 出力:

引数1:

引数2:

*/

次に、?func_get_args() メソッドを使用する、変数パラメーターを持つ関数を見てみましょう。

// はい、仮パラメータリストは空です

関数 foo() {

// すべての受信パラメータの配列を取得します

$args = func_get_args();

foreach ($args as $k => $v) {

エコー "arg".($k+1).": $v ";

}

}

ふー();

/* 何も出力されません */

ふー(こんにちは);

/* 出力

arg1: こんにちは

*/

foo(こんにちは、世界、再び);

/* 出力

arg1: こんにちは

引数2:ワールド

arg3: 再度

*/

2. Glob()を使用してファイルを検索します

多くの PHP 関数には、比較的長い一目瞭然の関数名が付けられていますが、?glob() を見ただけでは、この関数に慣れていない限り、この関数が何に使われるのかわからないかもしれません。

この関数は、ファイルの検索に使用できる ?scandir() と考えることができます。

// サフィックス PHP を持つすべてのファイルを取得します

$files = glob(*.php);

print_r($files);

/* 出力:

配列

(

[0] => phptest.php

[1] => pi.php

[2] => post_output.php

[3] => test.php

*/

さまざまなサフィックスを検索することもできます

// PHPファイルとTXTファイルを取得します

$files = glob(*.{php,txt}, GLOB_BRACE);

print_r($files);

/* 出力:

配列

(

[0] => phptest.php

[1] => pi.php

[2] => post_output.php

[3] => test.php

[4] => log.txt

[5] => test.txt

*/

パスを追加することもできます:

$files = glob(../images/a*.jpg);

print_r($files);

/* 出力:

配列

(

[0] => ../images/apple.jpg

[1] => ../images/art.jpg

*/

絶対パスを取得したい場合は、?realpath() 関数を呼び出すことができます:

$files = glob(../images/a*.jpg);

// 関数を配列の各要素に適用します

$files = array_map(realpath,$files);

print_r($files);

/* 出力は次のようになります:

配列

(

[0] => C:wampwwwimagesapple.jpg

[1] => C:wampwwwimagesart.jpg

*/

3. メモリ使用量情報

プログラムのメモリ使用量を観察すると、コードをより適切に最適化できます。

PHPにはガベージコレクション機構と非常に複雑なメモリ管理機構があります。スクリプトが使用しているメモリ量を確認できます。現在のメモリ使用量を知るには、memory_get_usage() 関数を使用します。ピーク時のメモリ使用量を知りたい場合は、memory_get_peak_usage() 関数を呼び出します。

echo "初期値: ".memory_get_usage()." バイト ";

/* 出力

初期値:361400バイト

*/

// メモリを使用します

for ($i = 0; $i

$array []= md5($i);

}

// メモリの半分を削除

for ($i = 0; $i

unset($array[$i]);

}

echo "最終: ".memory_get_usage()." バイト ";

/* プリント

最終:885912バイト

*/

echo "ピーク: ".memory_get_peak_usage()." バイト ";

/* 出力ピーク値

ピーク: 13687072 バイト

*/

4. CPU使用率情報

?getrusage()関数を使うとCPU使用率を知ることができます。この機能は Windows では使用できないことに注意してください。

print_r(getrusage());

/* 出力

配列

(

[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

*/

CPU についてよく知らない限り、この構造は非常にわかりにくいように思えます。以下にいくつかの説明があります:

ru_oublock: ブロック出力操作

ru_inblock: ブロック入力操作

ru_msgsnd: メッセージが送信されました

ru_msgrcv: メッセージを受信しました

ru_maxrss: 常駐セットの最大サイズ

ru_ixrss: 共有メモリの合計サイズ

ru_idrss: すべての非共有メモリサイズ

ru_minflt: ページのリサイクル

ru_majflt: ページが無効です

ru_nsignals: 受信シグナル

ru_nvcsw: アクティブなコンテキスト切り替え

ru_nivcsw: パッシブコンテキストスイッチング

ru_nswap: 交流エリア

ru_utime.tv_usec: ユーザーモード時間(マイクロ秒)

ru_utime.tv_sec: ユーザー時間(秒)

ru_stime.tv_usec: システムカーネル時間(マイクロ秒)

ru_stime.tv_sec: システムカーネル時間(秒)

www.bkjia.com本当http://www.bkjia.com/PHPjc/478742.html技術記事 1. 関数の任意の数のパラメーター PHP では、デフォルトのパラメーターを使用して関数を定義できることはご存知かもしれません。しかし、PHP では完全に任意のパラメーターを使用して関数を定義できることはご存知ないかもしれません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。