ホームページ  >  記事  >  バックエンド開発  >  PHP プログラマーがよく犯す 9 つのよくある間違いとヒント

PHP プログラマーがよく犯す 9 つのよくある間違いとヒント

PHP中文网
PHP中文网オリジナル
2017-10-30 10:12:52912ブラウズ

PHP を一定期間学習すると、特定の悪い習慣が身につきます。以下は、エディターがまとめた 9 つのよくある間違いです。誰もが学ぶことができるように。

PHP プログラマーがよく犯す 9 つのよくある間違いとヒント

1. 変数宣言

以下に示すように、ステートメント内で変数を宣言すると、コンパイラーはまずステートメントの右半分の値を見つけます。まさにこの部分でエラーが発生することがよくあります。間違った構文を使用すると、解析エラーが発生します。

2. 解析エラー

たとえば、解析エラー: c:program filesapache groupapachehtdocsscript.php の 19 行目で解析エラー、予期せぬ T_WHILE 前のエラーが特定されるたびに解析エラーが次々と表示され、PHP が停止します最初の解析エラーの後にスクリプトを実行します。また、解析エラーの情報はほとんどなく、エラーが発生した行番号はほとんど報告されません。たとえば、事前定義されたキーワードが式で使用されます (例: while=10; while は事前定義されたキーワードであるため、値を割り当てることはできません)。事前定義されたキーワードには、while、function などが含まれます。これらの事前定義されたキーワードを変数の名前に使用することはできません。使用しないと、コンパイラによってエラーが報告されます。このうち、T_IFはif()、T_WHILEはwhile()、T_FORはfor()などを表します。

3. 一般的なエラー

ステートメントがセミコロン (;) で終わっていない、文字列内の引用符が欠落しているなど、いくつかの一般的なエラーもあります。さらに、関数またはループを終了するために中括弧 (}) を使用しない場合、たとえば: function UselessFunction(){for($i

4. MySQL エラー

もう 1 つのタイプのエラー メッセージは MySQL エラーで、次のような PHP 初心者を悩ませることがよくあります。 警告: 指定された引数は有効な MySQL 結果リソースではありません。間違った行は次のとおりです: while($row=mysql_fetch_array($result)){}クエリが失敗し、mysql_fetch_array を処理できないため、パラメータ $result は有効なリソースではありません。クエリの構文が無効であるか、データベースへの接続が失敗する場合は、MySQL コンソールにアクセスしてテストする必要があります。

5. echo と print の違いに注意してください

PHP の echo と print にはどちらも出力関数がありますが、この 2 つにはまだ微妙な違いがあります。 echo出力後の戻り値はありませんが、printには戻り値があり、実行失敗時にfalseを返します。したがって、これは通常の関数として使用できます。たとえば、$r=print "Hello World" が実行されると、変数 $r の値は 1 になります。さらに、コード内の echo ステートメントは print ステートメントよりもわずかに高速に実行されます。

6. 空文字列('')とNULLの違いに注意してください

PHPでは空文字列とNULLはどちらも値0で格納されますが、前者は文字列、後者は型が異なります。は NULL、可視文字列 ('')、NULL 値は等しいが型が異なります。

== (等しい) と === (すべて等しい) の違いを区別します

どちらも比較演算子です == (等しい) は値が等しいかどうかのみを比較しますが、 === (すべて等しい) は比較しません。値が等しいかどうかのみを比較します。型が等しいかどうかも比較されます。これはより厳密です。

7. include と require の違いを区別する

include() と require() は基本的に同じ関数ですが、include() は条件付き包含関数であるのに対し、require() は使用方法にいくつかの違いがあります。無条件に関数が含まれます。たとえば、次のコードでは、変数 $a が true の場合、ファイル a.php がインクルードされます: if($a){include("a.php");} および require() は include( )、$ に関係なく、 a がどのような値であっても、次のコードにはファイル a.php がインクルードされます: if($a){require("a.php");} エラー処理の観点からは、include ステートメントを使用します。インクルードエラーが発生した場合、プログラムは include ステートメントをスキップします。エラーメッセージが表示されますが、プログラムは実行を続行します。ただし、require ステートメントでは致命的なエラーが発生します。

8. isset と empty の違いに注意してください

empty は変数が「空」かどうかを判断するのに対し、isset は変数が設定されているかどうかを判断します。

9. self:: と this の違いを区別する ->

PHP クラスのメンバー変数またはメソッドにアクセスするとき、参照される変数またはメソッドが const (定数) または static (静的) として宣言されている場合属性) を使用する場合は、ドメイン演算子:: を使用する必要があります。また、参照される変数またはメソッドが const または static として宣言されていない場合は、ポインター演算子 -> を使用します。

以上がPHP プログラマーがよく犯す 9 つのよくある間違いとヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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