忘れられがちなPHPの知識
1.echoとprintの違い
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(''); と echo gettype(NULL); を試してみると、その違いがわかります。は文字列と NULL であり、もちろん 0 も混同しやすいです。 echo gettype(0); 型を試してみると、0 の型が整数 ('') であることがわかります。 、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 "I am empty":print "I am $id.";//結果: 私は0です
6. ==(等しい)と===(定数)の違い
上記の空の文字列 ("") と NULL の 4 番目の違いを振り返って、別の例を見てみましょう:
'' == NULL;
'' === NULL;
実行すると、最初の値は true で、2 番目の値は false であることがわかります。 == は値が等しいかどうかのみを比較しますが、 === は値を比較するだけでなく、型も比較するため、より厳密であることがわかります。
7.自分::とこれの違い>
PHP クラスのメンバー変数またはメソッドにアクセスするとき、参照される変数またはメソッドが const (定数の定義) または static (静的宣言) として宣言されている場合は、演算子:: を使用する必要があります。それ以外の場合、参照される変数またはメソッドconst または static が宣言されていない場合は、演算子 -> を使用する必要があります。
また、クラス内から const または static の変数やメソッドにアクセスする場合は、逆に、クラス内から非 const や static の変数やメソッドにアクセスする場合は、自己参照された self を使用する必要があります。の場合は、自己参照 $this を使用する必要があります。
8.strstr()とstrpos()の違い
Stristr() は大文字と小文字を区別しません strstr() は大文字と小文字を区別します
関数は、別の文字列内で最初に出現する文字列を見つけます。
成功した場合は、文字列の残りの部分(一致点から)を返します。文字列が見つからない場合は false が返されます。
stripos() は大文字と小文字を区別しません strpos() は大文字と小文字を区別します
この関数は、別の文字列内で最初に出現する文字列の位置を返します。
文字列が見つからない場合はfalseを返します。
存在するかどうかを検索するだけであれば、strpos() の実行効率が strstr() よりも高いことがテストで証明されています
9.PHP の HTTP_HOST と SERVER_NAME
類似点:
以下の3つの条件を満たした場合、どちらも同じ情報を出力します。
1.サーバーはポート80です
2. ApacheのconfのServerNameが正しく設定されていること
3. HTTP/1.1プロトコル仕様
違い:
1. 通常:
_SERVER["HTTP_HOST"] HTTP/1.1プロトコル仕様では、クライアントのHTTPリクエストに応じて情報が出力されます。
_SERVER["SERVER_NAME"] デフォルトでは、Apache 設定ファイル httpd.conf の ServerName の値が直接出力されます。
2. サーバーがポート80でない場合:
_SERVER["HTTP_HOST"] はポート番号を出力します。例: mimiz.cn:8080
_SERVER["SERVER_NAME"]はServerNameの値を直接出力します
つまり、この場合、 HTTP_HOST = SERVER_NAME : SERVER_PORT と理解できます
3. 設定ファイル httpd.conf の ServerName が HTTP/1.0 が要求するドメイン名と一致しない場合:
httpd.confの設定は以下の通りです:
サーバー名 pprar.com
サーバーエイリアス http://www.pprar.com
クライアント アクセス ドメイン名 http://www.pprar.com
_SERVER["HTTP_HOST"] 出力 http://www.pprar.com
_SERVER["SERVER_NAME"] 出力 pprar.com
そのため、実際のプログラムでは、より安全で信頼性の高い_SERVER["HTTP_HOST"]を使用するようにしてください。
ポートマッピングを使用してイントラネット上でアクセスする場合は、「$_SERVER['HTTP_X_FORWARDED_HOST']」を使用した方がよいでしょう。
基本的な知識がある人にとって (たとえば、大学で C を学んだ人が多い) PHP は確かに難しくありません
PHP が開発された当初の目的は、Java とは異なり、大量のフレームワークを迅速に開発することです
しかし、あなたの状況では、高度なプログラミング言語に触れたことがない人
結局のところ、HTML や CSS などのフロントエンド言語と高級言語の間には大きな違いがあります。条件が揃っていれば、基本的なプログラミングのアイデアを説明してくれる友人を見つけることができます
オブジェクト、関数などの基本的な知識
次に、PHP の入門書を購入するか、オンラインでダウンロードして確認してください。慣れている方は、簡単なコードをありがとうございます
基本的な知識がほぼ同じだと思われる場合は、標準のソース コードをダウンロードして、他の人がどのようにコードを書いているかを確認し、技術フォーラムにアクセスしてください。独自の Web サイトを書き始めるだけです。
将来的には、オブジェクト、デザイン パターン、フレームワークなど、より高度な開発が行われます。これらはすべて、慣れた後にのみ使用できるものです。今後の開発のために心配する必要はありません。
PHPプログラミングで良い仕事が見つかります
http://www.bkjia.com/PHPjc/896046.html