今日、Caterpillar が空の文字列と NULL を区別していることを知りました ( http://bbs.phpchina.com/thread-99574-1-2.html )。私は基本的なことをしっかりと理解していないと感じました。 (私などの)知識はとても役に立ちました。気まぐれに、多くの「権威ある情報」を調べて、皆さんが基本を学ぶことができるように記事を書き、ここに投稿しました。厳密ではなく、内容は個人的な要約です。不足がある場合は、専門家を追加してください。本文は次のとおりです。
1.PHP の echo と print の機能は
次のとおりです。
基本的には同じ (出力) ですが、両者にはまだ微妙な違いがあります。 echo出力後の戻り値はありませんが、printには戻り値があり、実行失敗時にfalseを返します。したがって、通常の関数として使用できます。たとえば、次のコードを実行すると、変数 $r の値は 1 になります。
コード:
$r = print "Hello World";
これは、print は一部の複雑な式で使用できるが、echo は使用できないことを意味します。ただし、echo ステートメントは値を返す必要がないため、コード内の echo ステートメントは print ステートメントよりもわずかに高速に実行されます。
2. include と require の違い
include() と require() の関数は基本的に同じ (include) ですが、include() は条件付き包含関数であるのに対し、require() は使用法にいくつかの違いがあります。無条件包含関数。たとえば、次のコードでは、変数 $a が true の場合、ファイル a.php がインクルードされます。
コード:
if($a){
include("a.php");
}
ただし、require() は include() とは異なります。 $a の値に関係なく、次のコードはファイル a.php をファイルにインクルードします。
コード:
if($a){
require("a.php");
}
エラー処理に関しては、include ステートメントを使用します。include エラーが発生した場合、プログラムはエラー メッセージが表示されますが、プログラムは実行を続行します。ただし、requireすると致命的なエラーが発生します。
もちろん、Qifen を文字通りに理解することもできます。require は、非常に強い要求や要求を意味します。
3. require_once() ステートメントと include_once() ステートメントは、
見た目が似ているため、本題からは外れます。単純な require_once() ステートメントと include_once() ステートメントは、それぞれ require() ステートメントと include() ステートメントに対応します。 require_once() および include_once() ステートメントは主に、複数のファイルをインクルードする必要がある場合に使用され、同じコード部分をインクルードすることによって発生する関数または変数の繰り返し定義のエラーを効果的に回避できます。
4. 空の文字列 ('') と NULL の違い。PHP
では、空の文字列と NULL は両方とも値 0 で保存されますが、それらの型は異なります。 echo gettype(''); を試すことができます。 NULL); 出力されるのはそれぞれ string と NULL であることがわかります。もちろん、0 も混同しやすいですが、echo gettype(0); を試してみると、0 の型は整数であることがわかります。 integer) を参照すると、文字列 ('')、NULL、および 0 は「等しい値」ですが、等しい型ではないことがわかります。
5.! isset と empty の違いは
文字通りの意味から理解できます。empty は変数が「空」かどうかを判断するのに対し、isset は変数が設定されているかどうかを判断します。ただし、ここで注意しなければならないことが 1 つあります。それは、変数の値が 0 の場合、empty はその変数が空であるとみなします。つまり、設定がないことと同じです。たとえば、$id 変数を検出するとき、$id=0 の場合、empty と isset を使用して変数 $id が設定されているかどうかを検出します。両方とも異なる値を返します。empty は設定されていないと考え、isset は取得できます。 $id の値については、以下の例を見てください。
コード? :
$id=0;
empty($id)?print "私は空です":print "私は $id です。" //結果: 私は空です。
!isset($id)?print "私は空です":print "私は $id.";//結果: 私は 0
6. == (等しい) と === (等しい) の違い
上記の 4 番目の空の文字列 ("") と NULL の違いを確認し、例を見てみましょう。
コード:
'' == NULL;
'' === NULL;
実行すると、最初の値は true で、2 番目の値は false であることがわかります。 == は値が等しいかどうかのみを比較しますが、 === は値を比較するだけでなく、型も比較するため、より厳密であることがわかります。