$data['ru_utime.tv_usec'] / 1000000); echo "システム時間: ".
上記の例では、より多くの CPU が消費されていることがわかります。
5. システム定数
PHP は、現在の行番号 (__LINE__)、ファイル (__FILE__)、ディレクトリ (__DIR__)、関数名 (__FUNCTION__)、クラス名 (__CLASS__)、メソッドを取得できる非常に便利なシステム定数を提供します。 C 言語とよく似た、名前 (__METHOD__) と名前空間 (__NAMESPACE__)。
これらは主にデバッグに使用されると考えられますが、必ずしもそうではありません。たとえば、他のファイルをインクルードする場合は、?__FILE__ を使用できます (もちろん、PHP 5.3 以降では __DIR__ も使用できます)。例。
コードをコピーします
コードは次のとおりです:
// これはロードされたスクリプトのパスに対して相対的です
// 異なるディレクトリからスクリプトを実行するときに問題が発生する可能性があります
require_once('config/database.php')
// これは常にこのファイルのパスに対して相対的です
/ / どこからインクルードされたかは関係ありません
require_once(dirname(__FILE__) . '/config/database.php');
以下は、プログラムのデバッグに役立つデバッグ情報を出力するために __LINE__ を使用しています:
//
別のデバッグ メッセージ", __LINE__);
/* 出力
11 行目: 別のデバッグ メッセージ
*/
function my_debug($msg, $line) {
echo "Line $line: $msgn";
}
6.一意のIDを生成する
以下のようにmd5()を使って一意のIDを生成する人が多いです:
// 一意の文字列を生成します
echo md5(time() . mt_rand(1,1000000));
実はPHPには があります。これを行うために特に使用される ?uniqid() という関数:
// 一意の文字列を生成します echo uniqid();
/* 出力 4bd67c947233e
*/
// 別の一意の文字列を生成します
echo uniqid( );出力
4bd67c9472340
IDの並び替えが簡単です。 MD5 ではこれができません。
名前の重複を避けるためにプレフィックスを追加することもできます:
// Prefix
echo uniqid('foo_');
/* Output
foo_4bd67d6cd8b8f
*/
// より多くのエントロピーがあります
echo uniqid('',true ) ;
/* Output
4bd67d6cd8b926.12135106
*/
さらに、生成される ID は MD5 で生成される ID よりも小さくなり、スペースが大幅に節約されます。
ユーザー名: パスワード: bkJia Sanbu 条約提出 Web サイト | PHP オープンソース関連ダウンロード | 中国語フォーラム | | Mysql | PHP | XML | DIV&CSS | データベース技術 > PHP > PHP アプリケーション > 時間: 2011 00:18 ソース:coolshell.cn 作成者:coolshell.cn クリック数:5403 回 [フォント サイズ:大、中、小] 1. 関数の任意の数のパラメータ PHP ではデフォルトのパラメータを使用して関数を定義できることはご存知かもしれません。ただし、PHP では完全に任意のパラメーターを使用して関数を定義できることはご存知ないかもしれません。以下に、デフォルト パラメーターを使用した関数の例を示します。 // 2 つのデフォルト パラメーターを持つ関数 function foo($arg1 = '', $arg2 = '') { echo arg1: $ar
7. シリアル化
より複雑なデータ構造をデータベースまたはファイルに保存しますか? 独自のアルゴリズムを記述する必要はありません。 PHP はすでにそれを行っており、?serialize() と unserialize() という 2 つの関数を提供します:
コードをコピーします
コードは次のとおりです:
//複雑な配列
$myvar = array(
'hello',
42,
array(1,'two'),
'apple'
) // シリアル化
$string = Serialize( $myvar );
echo $string;
/* 出力
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0; i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
*/
//逆シリアル化
$newvar = unserialize($string
1
[1 ] => two
)
[3] => apple
)
JSON をサポートし、json_encode() 関数と json_decode() 関数を使用できます
// 複雑な配列
$myvar = array( 'hello',
42,
array(1,'two'),
'apple'
) ; // 文字列に変換
$string = json_encode($myvar)
echo $string /* prints
; ",42,[1,"two"],"apple"]
*/
// 元の変数を再現できます
$newvar = json_decode($string);
print_r($newvar);
/*
を出力します配列
(
[0] => こんにちは
[1] => 42
[2] => 配列
(
[0] => 1
[1] => 2
)
[3 ] => apple
)
*/
こちらの方がコンパクトに見えますし、JavaScript や他の言語とも互換性があります。ただし、非常に複雑なデータ構造によっては、データ損失が発生する可能性があります。
8. 文字列圧縮
圧縮というとファイル圧縮を思い浮かべるかもしれませんが、実際には文字列も圧縮できます。 PHP は、?gzcompress() および gzuncompress() 関数を提供します。
コードをコピーします。 コードは次のとおりです:
$string =
Nunc ut elit id mi ultrices
adipiscing.イーティアムac マッサ
sed turpis Tempor luctus. Curabitur sed nibh eu elit
、mollis の ornare 、 leo congue mollis の sed nunc 。 "元のサイズ: ".strlen($string)."n";
/* 出力元のサイズ: 800 */
echo ".strlen($compressed )."n"; ※圧縮サイズを出力します
圧縮サイズ:418 同時に、?gzencode() 関数と gzdecode() 関数を使用して圧縮することもできますが、使用する圧縮アルゴリズムは異なります。 9. シャットダウン関数を登録する
スクリプト全体がシャットダウンされる前にコードを実行できるようにする ?register_shutdown_function() という関数があります。以下の例を見てみましょう:
コードをコピー
コードは次のとおりです:
// 開始時刻を取得します
$start_time = microtime(true);
// 何かをします
// ...
// スクリプトにかかった時間を表示します
echo "実行にかかった時間: ". true) - $start_time).
「秒」
上記の例は、特定の関数の実行時間を計算するためにのみ使用されます。その後、関数の途中で ?exit() 関数を呼び出した場合、最終的なコードは実行されません。また、ブラウザでスクリプトが終了した場合 (ユーザーが停止ボタンを押した場合)、スクリプトは実行できません。
そして register_shutdown_function() を使用すると、スクリプトが停止した後でもプログラムが実行されます:
$start_time = microtime(true);
register_shutdown_function('my_shutdown'); // 何かをします
// ...
function my_shutdown() {
global $start_time;
echo "実行にかかった時間: ".
" 秒。";
http://www.bkjia.com/PHPjc/323814.html
www.bkjia.com
本当
http://www.bkjia.com/PHPjc/323814.html技術記事 1. 関数の任意の数のパラメーター PHP では、デフォルトのパラメーターを使用して関数を定義できることはご存知かもしれません。しかし、PHP では完全に任意のパラメーターを使用して関数を定義できることはご存知ないかもしれません...