検索
ホームページバックエンド開発PHPチュートリアル忘れられがちな PHP の知識_PHP チュートリアル

1. echo と print の違い

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

<ol class="dp-c"><li class="alt"><span><span class="vars">$r</span><span> = print </span><span class="string">"Hello World"</span><span>;   </span></span></li></ol>

これは、print は一部の複雑な式で使用できるが、echo は使用できないことを意味します。ただし、echo ステートメントは値を返す必要がないため、コード内の echo ステートメントは print ステートメントよりもわずかに高速に実行されます。

2. include と require の違い

include() と require() は基本的に同じ関数 (include) ですが、include() は条件付き包含関数であるのに対し、require() にはいくつかの違いがあります。 ) 無条件包含関数です。たとえば、次のコードでは、変数 $a が true の場合、ファイル a.php がインクルードされます:

<ol class="dp-c">
<li class="alt"><span><span class="keyword">if</span><span>(</span><span class="vars">$a</span><span>){      </span></span></li>
<li>
<span class="keyword">include</span><span>(</span><span class="string">"a.php"</span><span>);      </span>
</li>
<li class="alt"><span>}   </span></li>
</ol>

そして、require() は $a がどのような値であっても、次のコードは include() とは異なります。ファイル a. PHP がファイルにインクルードされます:

<ol class="dp-c">
<li class="alt"><span><span class="keyword">if</span><span>(</span><span class="vars">$a</span><span>){      </span></span></li>
<li>
<span class="keyword">require</span><span>(</span><span class="string">"a.php"</span><span>);      </span>
</li>
<li class="alt"><span>}   </span></li>
</ol>

エラー処理に関しては、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(0) を試してみると、その型がわかります。 0。整数 (整数型) です。文字列 ('')、NULL、および 0 は「等しい値」ですが、等しい型ではないことがわかります。

5. isset と empty の違い

文字通りの意味から理解できます。empty は変数が「空」かどうかを判断するのに対し、isset は変数が設定されているかどうかを判断します。ただし、ここで注意しなければならないことが 1 つあります。変数の値が 0 の場合、empty はその変数を空と同等とみなし、これは設定がないことと同じです。たとえば、$id 変数を検出するとき、$id=0 の場合、empty と isset を使用して変数 $id が設定されているかどうかを検出します。両方とも異なる値を返します。empty は設定されていないと考え、isset は取得できます。 $id の値については、以下の例を見てください:

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">id</span><span>=</span><span class="attribute-value">0</span><span>;     </span></span></li>
<li><span>empty($id)?print "我是空的":print "我是$id ."; //结果:我是空的     </span></li>
<li class="alt"><span>!isset($id)?print "我是空的":print "我是$id .";//结果:我是0     </span></li>
</ol>

6. == (等しい) と === (等しい) の違い

4 番目の空の文字列 ("") と上記は NULL で、別の例を見てください:

<ol class="dp-c">
<li class="alt"><span><span class="string">''</span><span> == NULL;     </span></span></li>
<li>
<span class="string">''</span><span> === NULL;   </span>
</li>
</ol>

実行後、最初の例は true、2 番目の例は false であることがわかります。 == は値が等しいかどうかのみを比較しますが、 === は値を比較するだけでなく、型も比較するため、より厳密であることがわかります。

7. self :: と this-> の違い

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

さらに、クラス内から const または static 変数またはメソッドにアクセスする場合は、自己参照を使用する必要があります。逆に、クラス内から非 const または static 変数またはメソッドにアクセスする場合は、自己参照を使用する必要があります。自己参照 $this を使用します。

8. strstr() と strpos() の違い

stristr() は大文字と小文字を区別しません strstr() は大文字と小文字を区別します

この関数は、別の文字列内で最初に出現する文字列を検索します。

成功した場合は、文字列の残りの部分 (一致点から) を返します。文字列が見つからない場合は false が返されます。

stripos() 大文字と小文字を区別しない strpos() 大文字と小文字を区別する

関数は、別の文字列内で最初に出現する文字列の位置を返します。

文字列が見つからない場合は false を返します。

テストにより、単に検索して存在するかどうかを判断する場合、strpos() の実行効率は strstr() よりも優れていることが証明されています

PHP の HTTP_HOST および SERVER_NAME

同じ点:

以下の3つの条件を満たした場合、どちらも同じ情報を出力します。

1. サーバーはポート 80 です

2. Apache の conf 内の ServerName は正しく設定されています

3. HTTP/1.1 プロトコル仕様

1. 通常: HTTP の

_SERVER["HTTP_HOST"] /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 が設定されます次のように:

ServerName mimiz.cn

ServerAlias www.mimiz.cn

クライアント アクセス ドメイン名 www.mimiz.cn

_SERVER["HTTP_HOST"] 出力 www.mimiz.cn

_SERVER["SERVER_NAME "] 出力 mimiz.cn

そのため、実際のプログラムでは、より安全で信頼性の高い _SERVER["HTTP_HOST"] を使用するようにしてください。

ポートマッピングを使用してイントラネット上でアクセスする場合は、「$_SERVER['HTTP_X_FORWARDED_HOST']」を使用することをお勧めします。

元のアドレス:

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445699.html技術記事 1. echo と print の違い PHP の echo と print の機能は基本的に同じ (出力) ですが、両者にはまだ微妙な違いがあります。 echo 出力後の戻り値はありませんが、print には戻り値があります。次の場合...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?Apr 10, 2025 am 09:39 AM

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?Apr 10, 2025 am 09:38 AM

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。Apr 10, 2025 am 09:37 AM

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、ファイルを安全に処理する方法をどのように処理しますか?PHPは、ファイルを安全に処理する方法をどのように処理しますか?Apr 10, 2025 am 09:37 AM

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Apr 10, 2025 am 09:33 AM

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。

コンテンツセキュリティポリシー(CSP)ヘッダーとは何ですか?なぜ重要なのですか?コンテンツセキュリティポリシー(CSP)ヘッダーとは何ですか?なぜ重要なのですか?Apr 09, 2025 am 12:10 AM

XSS攻撃を防ぎ、リソースのロードを制限し、ウェブサイトのセキュリティを改善できるため、CSPは重要です。 1.CSPはHTTP応答ヘッダーの一部であり、厳格なポリシーを通じて悪意のある行動を制限します。 2。基本的な使用法は、同じ起源からのロードリソースのみを許可することです。 3.高度な使用法は、特定のドメイン名がスクリプトやスタイルをロードできるようにするなど、より微調整された戦略を設定できます。 4。CSPポリシーをデバッグおよび最適化するには、コンテンツセキュリティポリシーレポートのみのヘッダーを使用します。

HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか?HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか?Apr 09, 2025 am 12:09 AM

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

HTTPSとは何ですか、なぜWebアプリケーションにとって重要なのですか?HTTPSとは何ですか、なぜWebアプリケーションにとって重要なのですか?Apr 09, 2025 am 12:08 AM

HTTPSは、HTTPに基づいてセキュリティレイヤーを追加するプロトコルであり、主に暗号化されたデータを介してユーザーのプライバシーとデータセキュリティを保護します。その作業原則には、TLSの握手、証明書の確認、暗号化された通信が含まれます。 HTTPSを実装する場合、証明書管理、パフォーマンスへの影響、および混合コンテンツの問題に注意を払う必要があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい