ホームページ バックエンド開発 PHPチュートリアル PHP コーディングのヒント (php ヒント) [最終更新日 2011/04/02]_PHP チュートリアル

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

Jul 21, 2016 pm 03:30 PM
list php 使用 小さい スキル 更新する やっと

最終更新日: 2011/04/02

1. 分解後にリストを使用して特定のセグメント値を取得します:
list( , $mid) =explode(';', $string);
2. 代わりに NULL == = を使用します。 is_null の:
is_null と NULL === はまったく同じ効果がありますが、関数呼び出しを保存します

3. === を使用し、== は使用しないでください:
PHP には 2 つの等価比較演算子があります == = /!== と ==/!=、==/!= は暗黙的な型変換を行いますが、===/!== は 2 つの演算が同じ型で等しい値を持つかどうかを厳密に比較します
== の代わりに === を使用するのが最善です。変換ルールが覚えにくいだけでなく、=== を使用すると、将来のメンテナンスやコードを読む人にとっても非常に快適になります。この瞬間、この行のステートメント、この変数はこの型です!"。

4. continue の使用を減らすか、まったく使用しない:
continue はループの先頭に戻り、ループの最後はループに戻ります。

5. switch/in_array での緩い比較に注意してください:
switch と in_array は両方とも緩い比較を使用するため、比較する変数が異なると間違いが発生しやすくなります:

コードをコピーします。 コードは次のとおりです:
switch ($name) {
case "laruence":
。 ..
break;
case "eve":
. ..
break;
}

上記のスイッチの場合、$name が数値 0 の場合、同じことが in_array にも当てはまります。
解決策は、スイッチの前に変数の型を変更することです。 期待する型に変換します。



コードをコピーします。 コードは次のとおりです。
switch (strval($name)) { case "laruence ": ...
break;
case "eve":
...
break;
}



ただし、in_array には、デフォルトの比較方法を変更できる 3 番目のオプションのパラメータが用意されています。
6. Switch は変数を識別するためだけに使用されるわけではありません:
たとえば、次のコード部分の場合:


コードをコピー

コードは次のとおりです:
if($a) { } else if ($b ) { } else if ($c || $d) {
}


は次のように簡単に書き換えることができます:


コードをコピー

コードは次のとおりです:
switch (TRUE) { case $a: break;
case $b:
break;
}


7. 変数を定義してから使用すると分かりやすいと思います。
未定義の変数を使用すると、定義された変数を使用するよりも 8 倍以上遅くなります
同様に、PHP エンジンは通常のロジックに従って最初にこの変数を取得しますが、この変数は存在しないため、PHP エンジンは NOTICE をスローする必要があります。未定義の変数を使用するときに従う必要があるロジックのセクションを入力し、新しい変数を返します
さらに、コードを読む観点から見ると、未定義の変数を使用すると、コードを読む人が混乱します。 「この変数はそこで初期化されていますが、前のコードと何か関係がありますか? それを含めますか?」
最後に、標準プログラミングの観点から、これも行う必要があります。
8. 3 番目の変数を使用しない 2 つの変数の値:
list($a, $b) = array( $b, $a),
しかし、実際には、整数の場合はさらに多くの匿名の一時変数が存在します。相互演算を使用するのが確実です:



コードをコピーします

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


$a = $a + $b;
$b = $a - $b; $b;
ただし、+ – * / は精度が失われる可能性があるため、XOR を使用することをお勧めします。コードをコピーします コードは次のとおりです:

echo ~~4.9;
echo Floor(4.9);

使用法 2 つの NOT 演算の速度は基本的に Floor の 3 倍ですが、1 つあります。数値が大きい場合、オーバーフローが発生する可能性があります:


コードをコピー コードは次のとおりです:
echo ~~9999999999999.99; // 276447231
echo Floor(9999999999999.99); 999999999999


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);
func ();
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 $result *= $y;


13. $_SERVER['REQUEST_TIME' を使用します。 ] time() の代わりに
time() を使用すると、関数呼び出しが発生します。時間の正確な値が必要ない場合は、代わりに $_SERVER['REQUEST_TIME'] を使用すると、操作を回避できます。 for 判定条件で (この記事はメッセージを残した匿名さんからのものです)
次のコード:
for($i=0; $i}
は strlen を次のようにします。ループ内で呼び出されるたびに、
for ($i=0, $j=strlen($str ;
コードをコピーします

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


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 を使用します。 -existence
操作クラスの関数の場合、失敗は「操作が失敗した」ことを意味する FALSE を返します。クエリ クラスの関数の場合、必要な値が必要な場合は NULL を返します。 、「見つからない」ことを示します。
http://www.bkjia.com/PHPjc/323227.html
www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/323227.html
技術記事

最終更新日: 2011/04/02 1. 爆発後にリストを使用して特定のセグメント値を取得します: list(, $mid) =explode(';', $string); 2. is_null の代わりに NULL === を使用します: is_nullそして 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:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

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 は、

See all articles