ホームページ >バックエンド開発 >PHPチュートリアル >PHP プログラミングにおけるよくある間違いの一覧表

PHP プログラミングにおけるよくある間違いの一覧表

WBOY
WBOYオリジナル
2016-08-08 09:28:30868ブラウズ

概要: この記事では、PHP 開発者がコーディング時に見落としがちな、または注意を払わない傾向にある小さな間違いやエラーを取り上げます。

変数宣言

ステートメント内で次のように変数を宣言すると、 $var='value'; コンパイラは最初にステートメントの右半分の値を見つけますが、多くの場合エラーが発生するのはまさにステートメントのこの部分です。間違った構文を使用すると、解析エラーが発生します。

解析エラー

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

よくある間違い

ステートメントがセミコロン (;) で終わっていない、文字列内の引用符が欠落しているなど、一般的なエラーもいくつかあります。さらに、関数またはループを終了するために中括弧 (}) を使用しない場合、たとえば: function UselessFunction(){for($iphp on line 9 関数 UselessFunction は中括弧 (}) で終わっていないため、PHP コンパイラーは終了するまで右中括弧を探し続けます。ファイルの終わりに達します。 コンパイラは一致する中括弧を見つけられないため、ファイルの終わりエラーを報告します。コード階層が正しく反映されていれば、エラー メッセージが非常に明確になります。そうしないと、コードのデバッグが非常に困難になります。したがって、コードの階層構造を必ず示すようにしてください。これにより、後続の開発者がコードを改善しやすくなります。

MySQLエラー

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

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

PHPのEchoとprintはどちらも出力関数を持っていますが、それでも微妙な違いがあります。 echo出力後の戻り値はありませんが、printには戻り値があり、実行失敗時にfalseを返します。したがって、これは通常の

関数として使用できます。たとえば、 $r=print "Hello World" が実行されると、変数 $r の値は 1 になります。さらに、コード内の echo ステートメントは print ステートメントよりもわずかに高速に実行されます。

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

PHPでは空の文字列とNULLはどちらも値0で格納されますが、前者は文字列、後者は文字列('')とNULL値であることがわかります。は同じですが、タイプが異なります。

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

どちらも比較演算子で、 == (equal) は値が等しいかどうかだけを比較しますが、 === (equal to all) は値が等しいかどうかだけでなく、型が等しいかどうかも比較します。より厳格です。

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 エラーが発生した場合、プログラムはジャンプします include 文の後、エラーメッセージが表示されますが、プログラムは実行を続けます。ただし、require ステートメントでは致命的なエラーが発生します。 issetとemptyの違いに注意してください

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

self:: と this の違いを区別してください-->

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

上記では、PHP プログラミングのよくある間違いの一覧表をその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

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