ホームページ >バックエンド開発 >PHPチュートリアル >PHPグローバル変数の学習メモ_PHPチュートリアル
今日は、PHP の公式の PHP グローバル変数入門を参照して、PHP グローバル変数の使用法とそれについての私たち自身の考えを理解します。これがすべての学生に役立つことを願って、それらを共有します。
1. 考慮すべき重要なポイント:
1. 有効期限が切れたグローバル変数とその対処方法はどれですか?
例: unset($GLOBALS, $_ENV, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS);
2. コマンドラインではどのグローバル変数が無効ですか?
3. htmlspecialchars() の使用方法、なぜ使用するのですか?
4. $_REQUEST と $_GET、$_POST、$_COOKIE の関係と違いは何ですか?
5. ファイルがアップロードされたのに、$_FILES 変数が存在しないか空であるのはなぜですか?
6. グローバル変数のスコープは何ですか?
7. ユーザーの IP とブラウザの user_agent 情報を取得したいのですが、どうすればよいですか?
8. ブラウザを使用していませんが、ソケット プログラミングを行っていますか? セッションを維持するにはどうすればよいですか?
9. ヘッダー情報を取得するにはどうすればよいですか?
PHP の 9 つのグローバル事前定義配列
スーパーグローバル変数 — スーパーグローバル変数は、すべてのスコープで常に使用できる組み込み変数です
$GLOBALS — グローバル スコープで使用可能なすべての変数を参照します
$_SERVER — サーバーと実行環境の情報
$_GET — HTTP GET 変数
$_POST — HTTP POST 変数
$_FILES — HTTP ファイルアップロード変数
$_REQUEST — HTTP リクエスト変数
$_SESSION — セッション変数
$_ENV — 環境変数
$_COOKIE — HTTP Cookie
$php_errormsg — 前のエラーメッセージ
$HTTP_RAW_POST_DATA — 生の POST データ
$http_response_header — HTTP 応答ヘッダー
$argc — スクリプトに渡される引数の数
$argv — スクリプトに渡される引数の配列
2. 主な問題点
====================================
PSP 基本の概要トピック:
1>.var_dump(0=="ads"); このステートメントの結果はどうなりますか?なぜ?
回答: このステートメントの結果は true です。
この式の右辺の文字列は、デフォルトでは左辺のデータと同じintデータ0に強制変換されるため、「===」の場合はtrueが出力されます。これは、それらが異なるタイプと異なる値を持っているためであり、ここでは強制は行われません。
コメント: これを言うのは難しいので、試してみましょう! var_dump() は式の結果を出力します。 この実際のテストは式の操作に関するものです。
2> 例外は複製できますか?
答え: いいえ。
3>.PHP のトレイトの特徴は何ですか?
回答: トレイト (水平再利用/多重継承) は、クラスのように構造化されたメソッドのセットですが、開発者が異なるクラスでメソッドを簡単に再利用できるようにします。
Traits の最良の応用は、複数のクラスが同じ関数を共有できることです。
静的変数は特性メソッドによって参照できますが、特性によって定義することはできません。ただし、トレイトでは、使用されるクラスの静的メソッドを定義できます。
トレイトがプロパティを定義する場合、クラスは同じ名前のプロパティを定義できません。定義しない場合は、エラーが生成されます
;
まとめ: 質問も良く、答えも良いです
======================================
1. スーパーグローバル変数とは何ですか?回答: スーパー グローバル変数: $GLOBALS、$_SERVER、$_GET、$_POST、$_FILES、$_COOKIE、$_SESSION、$_REQUEST、$_ENV
2. ブラウザの Cookie が無効になっていますが、$_SESSION は引き続き使用できますか? 答え: もう使えません
コメント: 答えは間違っていましたが、うまくいきました。 Apache には、get パラメータに session_id を入れる自動機能があります。
3. $php_errormsg はいつでも利用できますか?回答: いいえ、この変数はエラーが発生するスコープでのみ使用でき、track_errors 構成項目をオンにする必要があります (デフォルトはオフです)。
要約: 非常に前向きです。答えがもっと包括的であればもっと良いでしょう
========================================
パーソナライズされた面接の質問
30 個の PHP 文字列関数を作成します。
例:
トリム() 文字列からスペースを削除します
Chop() パラメータ rtrim(string,find);
指定された文字を右から左に削除します。
rtrim() パラメータ rtrim(string,find);
指定された文字を右から左に削除します。
chr() 文字のasc2コードを返します
var_dump() 任意の形式の値を出力し、値の属性を返します
print() 配列または文字列を出力します
print_r() は単に文字列と数値を出力するだけですが、配列はキーと値の括弧で囲まれたリストとして表示されます
chunk_split() 文字列を一連の小さな部分に分割します
implode() 配列要素を文字列に結合します
join() 配列要素を文字列に結合します
explode() 文字列を配列に分割します
md5() md5 値を返します (不可逆的)
strlen() 文字列の長さを取得します
str_replace 文字列内の一部の文字を置換します
mb_substr mb 拡張インターセプト文字列関数、形式: mb_substr(string,start_Num,end_Num,'utf-8')
str_split 文字間隔に従って文字列を配列に分割します
strpos 最初に一致した位置を検索して返します
strtr 文字列内の特定の文字を変換します
substr 文字列をインターセプトします
substr_count 文字列内の特定の文字セグメントの出現数をカウントします
substr_replace 文字列内の一部の文字を置換します
wordwrap 関数は、指定された長さに応じて文字列をラップします
addcslashes() 指定された文字の前にバックスラッシュを追加します
strto lower() 文字列を小文字に変換します
strtoupper() 文字列を大文字に変換します
strrev() 文字列を反転します
strripos() 別の文字列内で最後に出現する文字列を検索します (大文字と小文字は区別されません)
strrpos() 別の文字列内で最後に出現した文字列を検索します (大文字と小文字を区別します)
strspn() 文字列に含まれる特定の文字の数を返します
ucwords() 文字列内の各単語の最初の文字を大文字に変換します
str_repeat() 文字列を指定された回数だけ繰り返します
...
========================================
1. 名前空間はプログラム スクリプトの最初のステートメントである必要がありますか?
答え: はい
2. 参照をキャンセルするにはどうすればよいですか?
答え: unset();
3. クラス内の少なくとも 1 つのメソッドが抽象として宣言されている場合、このクラスも抽象として宣言する必要がありますか?抽象クラスを継承する場合、サブクラスは親クラスのすべての抽象メソッドを定義する必要がありますか?
回答: クラス内に抽象メソッドがある場合、そのクラスは抽象クラスとして定義する必要があります。抽象クラスを継承する場合、サブクラスは親クラス内のすべての抽象メソッドを定義する必要があります。
========================================
1. ファイルの絶対パスを取得する方法
realpath() 関数を使用して、絶対パス名を返します。失敗した場合は、ファイルが存在しないなど、false が返されます。
echo realpath("test.txt");
出力:
C:wwwtestwebtest.txt
2. セッションの仕組み
セッションはサーバーに保存されますが、セッション ID は Cookie の形式でクライアントに保存されます。Cookie が無効になっている場合は、get メソッドの URL 書き換えメカニズムを使用するか、POST メソッドを使用して非表示のフォームを送信する必要があります。 。
コメント: これは原則ですが、通常、この機能は Web サーバーが自動的に実行するため、プログラムに追加する必要はありません。
3. public static で宣言された関数は静的メソッドですか?
public static で宣言された関数は静的メソッドであり、クラス名::関数名のメソッド呼び出しを新しい方法で宣言する必要はありません
。
注: $this->
などの関数内に動的コンテンツを含めることはできません
一般的に、頻繁に実行する必要があるコンテンツは STATIC で宣言されます
概要: セッションの動作原理はよく整理されており、徹底的に分析されています。これからも前向きに頑張っていきたいと思います