PHP コーディングのヒント (php ヒント) [最終更新日 2011/04/02]
最終更新日: 2011/04/02
1. リストを使用して、エクスプロード後の特定のセグメント値を一度に取得します。
list( , $mid) =explode(';', $string);
2. is_null の代わりに NULL === を使用します。
is_null と NULL === はまったく同じ効果がありますが、関数呼び出しを保存します。
3. ==:
PHP には 2 セットの等価比較演算子 ===/!== と ==/!= があり、==/!= は暗黙的な型変換を行いますが、===/!== は厳密です。 2 つの演算を比較する場合、それらの型が同じで値が等しいかどうか。
変換規則を覚えるのが難しいという事実に加えて、次の点も考慮する必要があります。 === を使用すると、将来のメンテナンスが容易ではなくなります。そうしないと、コードを読む人も「現時点では、このステートメントのこの変数はこの型である!」と安心するでしょう。 🎜>
4. 継続を少なくする/継続しない:
継続はループの先頭に戻り、ループの終わりはループの先頭に戻ります。したがって、適切な構築により、次のことが可能になります。
5. switch/in_array などには注意してください。
switch と in_array はどちらも緩い比較を使用するため、変数の型を比較する必要があります。
コードをコピー コードは次のとおりです:
switch ( $name) {
ケース "ラルエンス":
...
ブレーク;
ケース "イブ":
...
ブレーク; 🎜>
上記のスイッチの場合、$name が数値 0 の場合、同じことが in_array にも当てはまります。
解決策は、切り替える前に変数の型を期待する型に変換することです。 .
コードをコピー
コードは次のとおりです: switch (strval($name)) { case " laruence":
...break;
case "eve":
...
break;
}
ただし、in_array は、デフォルトの比較方法を変更できる 3 番目のオプションのパラメータを提供します。
6. スイッチは、変数を識別するためにのみ使用されます。
たとえば、次のコード部分の場合:
コードをコピーします
コードは次のとおりです: if($a) { } else if ($b) {
} else if ($c || $d) {}
これは次のように簡単に書き換えることができます:
コードをコピーします
コードは次のとおりです。 switch (TRUE) { case $a:
break;case $b:
break; >case $c:
case $d:
break;
}
はい、最初に変数を定義してから使用するとわかりますか? :
未定義の変数を使用すると、定義された変数を使用するよりも 8 倍以上遅くなります。
同様のことがあり、PHP エンジンはまず通常のロジックに従ってこの変数を取得しますが、この変数は存在しません。そのため、PHP エンジンは NOTICE をスローし、未定義の変数を使用するときに従うべきロジックのセクションを入力してから、新しい変数を返す必要があります。
さらに、コードを読み取る観点から、未定義の変数を使用する場合は次のようになります。 「この変数はどこで初期化されているのですか? 前のコードと何か関係がありますか? インクルードされたファイルと何か関係がありますか?」
8. 3 番目の変数を使用せずに 2 つの変数の値を交換します。
list($a, $b) = array( $b, $a),
しかし、実際にはまだ匿名の一時変数が存在します。整数の場合は、相互演算を使用する方が信頼性が高くなります。
コードをコピーします。
コードは次のとおりです。 :
$a = $a $b; $a = $a - $b; >ただし、 – */精度の低下やオーバーフローが発生しやすいため、XOR を使用することをお勧めします。 9. Floor == 2 つの NOT 演算 (この記事は Skiyo から提供されています)
コードをコピーします
コードは次のとおりです:
echo ~~4.9;
echo Floor(4.9); > 2 つの NOT 演算を使用する速度は基本的にフロアの 3 倍ですが、数値が大きい場合はオーバーフローが発生する可能性があることが 1 つあります:
コードをコピーコードは次のとおりです:
echo ~~9999999999999.99; //276447231
echo Floor(99999999999999.99) //99999999999999
10 .do{ }素晴らしいwhile(0) の使用法 (この記事は Qianfeng によって提供されています)
do{}while(0) には、goto やマクロ定義のコード ブロックを削除するなど、C/C で多くの素晴らしい用途があることがわかっています。
, PHP 同様に、do{}while(0) を使用して賢いアプリケーションを作成することもできますコードをコピーします
コードは次のとおりです。
do{
if(true) {
break;
}
if(true) {
break;
}
} while(false) ;
//
if(true) {
} else if(true) {
} else {
}
11.エラー抑制機能
には次のコードがあります:
コード をコピーすると、コードは次のようになります:
@func();
は次と同等です (PHP 原則の詳細な理解: エラー抑制と埋め込み HTML を参照):
コードをコピー コードは次のとおりです:
$report = error_reporting(0);
error_reporting($report);
さらに、エラー抑制シンボルはいくつかの問題を引き起こす可能性があります。(http://www.jb51.net/article/27022.htm) を参照してください。
最後に、エラー抑制機能もエラーのデバッグが発生するときに問題を引き起こす可能性があります。 🎜>12. 再帰の使用を避けるようにしてください (lazyboy のこの記事)
コードは次のとおりです。
function f($n) {
if ($n = 0) return 1; return $n * f ($n - 1); } //次のように変更されます: $result = 1;
for ($y = 1; $y $result *= $y;}
13. time() の代わりに $_SERVER['REQUEST_TIME'] を使用すると、
time() が関数呼び出しを引き起こします。時間の正確な値が高くない場合は、代わりに $ _SERVER['REQUEST_TIME'] を使用すると、はるかに高速になります。
14. for 判定条件での操作は避けてください (この記事はメッセージ内の Anonymous からのものです)。
次のコード:
for($i=0; $ i
により、ループ内で毎回 strlen が呼び出されます。 for ($i=0, $j=strlen($str); $ i}
15. 正規表現の使用を避けるようにしてください (この記事は次のとおりです)。 from pangyntao)
正規表現は時間がかかるため、正規表現を避け、代わりに次のような直接文字列処理関数を使用してください:
コードをコピー
コードは次のとおりです:
if (preg_match("!^foo_!i", "FoO_")) { }
// 次のように置き換えます: if (!strncasecmp(" foo_", "FoO_", 4)) { } if (preg_match("![a8f9]!", "sometext")) { } // 次のように置き換えます: if (strpbrk(" a8f9", "sometext")) { }
if (preg_match("!string!i", "text")) {}// 次のように置き換えます:
if (stripos("text", "string") !== false) {}
など
16. 二重引用符で囲まれた変数
とヒアドキュメントは次のとおりです:
echo "$name [2]";
PHP はプログラマの意図が $name であるかどうかを知りません。 "[2]" または $name [2],
したがって、中かっこを追加することをお勧めします:
コードをコピーします
コードは次のとおりです:
echo " {$name}[2]"; echo "${name}[2]";
17. 操作クラス関数の場合、失敗は FALSE を返します。 「操作が失敗しました。」一方、クエリ クラス関数の場合、必要な値が見つからない場合は、「見つからない」ことを意味する NULL を返す必要があります。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
