ホームページ  >  記事  >  バックエンド開発  >  基本チュートリアル: PHP_PHP チュートリアルでの紛らわしい関数の区別

基本チュートリアル: PHP_PHP チュートリアルでの紛らわしい関数の区別

WBOY
WBOYオリジナル
2016-07-13 17:37:01751ブラウズ

今日、Caterpillar が空の文字列と NULL を区別していることを知りました (http://bbs.phpchina.com/thread-99574-1-2.html)。私は基本的なことをしっかりと理解していないと感じました。知識 (たとえば、私にとって) とても役に立ちました。内容は厳密ではありません。内容は単なる個人的な要約です。不足がある場合は、専門家がさらに追加してください。本文は次のとおりです。

1.echoとprintの違い

PHP の echo と print の機能は基本的に同じ (出力) ですが、この 2 つにはまだ微妙な違いがあります。 echo出力後の戻り値はありませんが、printには戻り値があり、実行失敗時にfalseを返します。したがって、通常の関数として使用できます。たとえば、次のコードを実行すると、変数 $r の値は 1 になります。

コード:

$r = "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すると致命的なエラーが発生します。

もちろん、Qifeng を文字通りに理解することもできます。require は、非常に強い要求や要求を意味します。


3.require_once() および include_once() ステートメント

本題から外れますが、見た目が似ているため、単純な require_once() ステートメントと include_once() ステートメントは、それぞれ require() ステートメントと include() ステートメントに対応します。 require_once() および include_once() ステートメントは主に、複数のファイルをインクルードする必要がある場合に使用され、同じコード部分をインクルードすることによって発生する関数または変数の繰り返し定義でのエラーを効果的に回避できます。

4. 空の文字列 () と NULL の違い

PHP では空の文字列と NULL はどちらも値 0 で保存されますが、echo gettype(); と echo gettype(NULL); を試すと、それぞれ string が出力されることがわかります。 NULL ともちろん 0 と混同しやすいです。 echo gettype(0); print the type を試すと、0 の型が integer (integer) であることがわかります。 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 であることがわかります。 == は値が等しいかどうかのみを比較しますが、 === は値を比較するだけでなく、型も比較するため、より厳密であることがわかります。

http://www.bkjia.com/PHPjc/486605.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486605.html技術記事今日、Caterpillar が空の文字列と NULL を区別していることを知りました (http://bbs.phpchina.com/thread-99574-1-2.html)。私は基本的なことをしっかりと理解していないと感じました。知識(私など) とても助かりました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。