ホームページ  >  記事  >  バックエンド開発  >  PHPで変数を定義するさまざまな方法のまとめ

PHPで変数を定義するさまざまな方法のまとめ

不言
不言オリジナル
2018-06-02 14:03:341828ブラウズ

この記事では主にphpで変数を定義する様々な方法をまとめて紹介していますので、必要な方は参考にしてください

1.定数を定義するdefine("CONSTANT", "Hello world.");

定数スカラー データ (ブール値、整数、浮動小数点数、文字列) のみを含めることができます。

定数を呼び出すときは、「$」記号を追加せずに、単に名前を使用するだけで定数の値を取得できます。 echo CONSTANT;

注: 定数と (グローバル) 変数は異なります。ネームスペース。これは、たとえば TRUE と $TRUE が異なることを意味します。

2. 通常の変数 $a = "hello";

3. 変数変数 (2 つのドル記号 ($) を使用)

$$a = "world" ;<code>$$a = "world";

两个变量都被定义了:

$a 的内容是“hello”并且 $hello 的内容是“world”。

因此,可以表述为:

echo "$a ${$a}";或者 echo "$a $hello";它们都会输出:hello world

要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。

4.静态变量

在函数内部static $a = 0;

注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error)

静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用

5.全局变量

在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:

如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];

在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用

global $obj;

注:对于变量的 static 和 global 定义是以 应用 的方式实现的

6.给变量赋值:传地址赋值(简单引用):

$bar = &$foo; //加&符号到将要赋值的变量前

改动新的变量将影响到原始变量,这种赋值操作更加快速

注意:只有命名变量才可以传地址赋值

注意:如果

$bar = &$a; <br>$bar = &$foo;

改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)

7.PHP 超全局变量$GLOBALS :

包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。

$_SERVER : 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。

$_GET : 经由 HTTP GET 方法提交至脚本的变量。

$_POST : 经由 HTTP POST 方法提交至脚本的变量。

$_COOKIE : 经由 HTTP Cookies 方法提交至脚本的变量。

$_FILES : 经由 HTTP POST 文件上传而提交至脚本的变量。

文件上传表单中要有 enctype="multipart/form-data"

$_ENV : 执行环境提交至脚本的变量。

$_REQUEST :经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变

量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见 import_request_variables()。

注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。

$_SESSION :当前注册给脚本会话的变量。

如何禁用phpinfo():

php.ini中

disable_functions = phpinfo()

両方の変数が定義されています:

$a の内容は「hello」、$hello の内容は「world」です。

したがって、次のように表現できます:

echo "$a ${$a}"; または echo "$a $hello"; どちらも次のように出力されます: hello world

配列に可変変数を使用するには、次のようにする必要があります。曖昧な質問を解決します。これは、$$a[1] を記述するときに、パーサーは $a[1] を変数として必要とするか、または $$a を変数として必要としてインデックス [1] 値を持つ変数を抽出するかを知る必要があります。この問題を解決する構文は、最初のケースには ${$a[1]} を使用し、2 番目のケースには ${$a}[1] を使用します。

4. 関数 static $a = 0; 内の静的変数

注: 宣言内の式の結果を代入すると、static などの解析エラーが発生します。 $a =3+3; (エラー)🎜🎜静的変数は、関数の実行後にローカル関数ドメインにのみ存在し、変数値は失われず、再帰呼び出しに使用できます🎜🎜🎜。 🎜5. グローバル変数🎜🎜🎜 🎜関数本体内で定義されたグローバル変数は、関数本体外で使用できます。 関数本体外で定義されたグローバル変数は、関数本体内で使用できません。 $GLOBALS 配列をカスタマイズするための特別な PHP: 🎜🎜例: $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];🎜🎜実際のグローバル関数ドメイン内の global ステートメントでインポートされた変数が実際に作成されます グローバル変数への参照🎜🎜global $obj;🎜🎜注: 変数の静的定義とグローバル定義はアプリケーション方法で実装されます🎜 🎜🎜🎜6. 変数に値を代入します: 代入用のアドレスを渡します (単純な引用符): 🎜🎜🎜🎜$bar = &$foo; //代入される変数の前にアンパサンドを追加します 🎜🎜 新しい変数を変更します元の変数に影響を与えるため、この代入操作は高速です 🎜🎜注: アドレスを割り当てることができるのは名前付き変数のみです🎜🎜 注: If🎜🎜$bar = &$a <br>$bar = &$foo; ;🎜🎜$bar の値を変更すると、a の値を変更せずに変数 foo の値のみが変更されます (参照は変更されます) 🎜🎜🎜🎜7.PHP スーパーグローバル変数 $GLOBALS: 🎜🎜🎜🎜次の内容が含まれます現在のスクリプトのグローバル スコープで有効な各変数を指す参照。この配列のキーには、グローバル変数の名前が付けられます。 $GLOBALS 配列は PHP 3 以降に存在します。 🎜🎜$_SERVER: 変数は Web サーバーによって設定されるか、現在のスクリプトの実行環境に直接関連付けられます。古い $HTTP_SERVER_VARS 配列に似ています (まだ有効ですが、非推奨です)。
🎜🎜$_GET: HTTP GET メソッド経由でスクリプトに送信される変数。
🎜🎜$_POST: HTTP POST メソッド経由でスクリプトに送信される変数。
🎜🎜$_COOKIE: HTTP Cookie メソッドを介してスクリプトに送信される変数。
🎜🎜$_FILES: HTTP POST ファイルのアップロードを通じてスクリプトに送信された変数。
🎜🎜ファイルアップロードフォームには enctype="multipart/form-data" が必要です。
🎜🎜$_ENV: 実行環境によってスクリプトに送信される変数。
🎜🎜$_REQUEST: 変数は GET、POST、COOKIE メカニズムを介してスクリプトに送信されるため、この配列は信頼できません。この配列に含まれるすべての変数の存在と順序は、php.ini の variables_order 設定ディレクティブに従って定義されます。この配列は、PHP 4.1.0 の以前のバージョンを直接エミュレートしません。 import_request_variables() を参照してください。 🎜🎜注: PHP 4.3.0 以降、$_FILES のファイル情報は $_REQUEST に存在しなくなりました。 🎜🎜$_SESSION: スクリプト セッションに現在登録されている変数。 🎜🎜phpinfo():🎜🎜php.iniを無効にする方法
🎜🎜disable_functions = phpinfo()🎜🎜Webサーバーを再起動します。 🎜🎜php の定数🎜🎜定数は、define (定数名、定数値) のみを使用できます。🎜🎜定数には、スカラー データ (ブール値、整数、浮動小数点、文字列) のみを含めることができます。 🎜🎜定数の前に $ 記号を追加しないで、名前を指定するだけで定数の値を取得できます。定数名が動的である場合、関数 🎜🎜constant() を使用して定数の値を読み取ることもできます。 get_define_constants() を使用して、定義されているすべての定数のリストを取得します。 🎜🎜注: 定数と (グローバル) 変数は異なる名前空間にあります。これは、たとえば TRUE と $TRUE が異なることを意味します。 🎜

未定義の定数が使用される場合、PHP は文字列 (CONSTANT は「CONSTANT」に対応します) で呼び出すかのように、必要なのは定数自体の名前であると想定します。 E_NOTICE レベルのエラーが発行されます。 $w3sky[bar] が間違っている理由についてはマニュアルを参照してください (bar が事前にdefine() で定数として定義されている場合を除く)。特定の定数が定義されているかどうかだけを確認したい場合は、define() 関数を使用します。
定数は変数とは異なります:

* 定数の前にドル記号 ($) はありません。

* 定数は、代入ステートメントではなく、define() 関数でのみ定義できます。変数スコープの規則に関係なく、どこでも定義およびアクセスできます。

* 一度定義された定数は、再定義または未定義にすることはできません。

* 定数の値はスカラーのみです。

定数を定義する

<?PHP 
define("CONSTANT", "Hello world."); 
echo CONSTANT; // outputs "Hello world." 
echo Constant; // outputs "Constant" and issues a notice. 
?>

関連する推奨事項:

phpでのさまざまなソート関数の使用方法のまとめ


phpのさまざまな演算子の紹介と例


以上がPHPで変数を定義するさまざまな方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。