忘れられがちな 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']」を使用することをお勧めします。
元のアドレス:

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。

C言語関数は、コードモジュール化とプログラム構築の基礎です。それらは、宣言(関数ヘッダー)と定義(関数体)で構成されています。 C言語は値を使用してパラメーターをデフォルトで渡しますが、外部変数はアドレスパスを使用して変更することもできます。関数は返品値を持つか、または持たない場合があり、返品値のタイプは宣言と一致する必要があります。機能の命名は、ラクダを使用するか、命名法を強調して、明確で理解しやすい必要があります。単一の責任の原則に従い、機能をシンプルに保ち、メンテナビリティと読みやすさを向上させます。

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

JavaScriptのDOMノードの下でのXpath検索方法の詳細な説明、XPath式に基づいてDOMツリーから特定のノードを見つける必要があることがよくあります。あなたがする必要があるなら...

CとC#には類似点がありますが、それらは完全に異なります。Cはプロセス指向の手動メモリ管理、およびシステムプログラミングに使用されるプラットフォーム依存言語です。 C#は、デスクトップ、Webアプリケーション、ゲーム開発に使用されるオブジェクト指向のガベージコレクション、およびプラットフォーム非依存言語です。
