ホームページ php教程 php手册 PHP コーディングのヒント (php ヒント) [最終更新日 2011/04/02]

PHP コーディングのヒント (php ヒント) [最終更新日 2011/04/02]

Jun 13, 2016 pm 12:10 PM
list php 使用 小さい スキル 更新する やっと

最終更新日: 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 のこの記事)

再帰のパフォーマンスは懸念事項であり、再帰のほとんどは末尾再帰ですが、これは削除できます。 code

コードは次のとおりです。


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 を返す必要があります。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

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

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

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

See all articles