PHP には 4 つの異なる変数スコープがあります: static、parameter、global、local。関数。関数内でグローバル変数を使用するには、global キーワードを使用します。
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
?>
グローバル スコープの変数にアクセスする 2 番目の方法は、特別な PHP カスタム
配列を使用することです。前の例は次のように記述できます: <?php
$a = 1;
$b = 2;
function Sum()
{
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}
Sum();
?>
2. 静的変数
変数スコープのもう 1 つの重要な機能は、静的変数 (staticvariable) です。静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。
関数内で定義された静的変数を関数外で呼び出すことはできません。 静的変数は、再帰関数を処理する方法も提供します。再帰関数は、それ自体を呼び出す関数です。再帰関数を作成するときは、無限に再帰する可能性があるので注意してください。再帰を終了する適切な方法があることを確認する必要があります。
<?php function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test (); } $count--; } ?>
3. ローカル変数
パラメータは、呼び出しコードを通じて関数に値を渡すローカル変数です。
4. 変数変数変数変数名を使用すると非常に便利な場合があります。つまり、変数の変数名を動的に設定して使用できます。通常の変数は宣言によって設定されます。例:
<span style="color:#000000;"><span style="color:#0000BB;">722fef50df464e58f78ec331616a7b9d<table border="0"><tbody><tr class="firstRow"><td><code><span style="color:#000000;"><span style="color:#0000BB;">3b830563c25e5a384af90b185aff39d7</span></span>
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。在上面的例子中hello 使用了两个美元符号($)以后,就可以作为一个可变变量的变量了。例如:
<span style="color:#000000;"><span style="color:#0000BB;">0866218afc3127d68012a3c0b8648436</span></span> |
这时,两个变量都被定义了:$a 的内容是“hello”并且$hello 的内容是“world”。因此,可以表述为:
<span style="color:#000000;"><span style="color:#0000BB;">f5768488027307d1b3956c7da0cb8c3a</span></span> |
以下写法更准确并且会输出同样的结果:
<span style="color:#000000;"><span style="color:#0000BB;">a4b97cc2c1c24866c46df264f35790dd</span></span> |
<span style="color:#000000;"><span style="color:#0000BB;">c7b53a7d0ddfafa0693eeb24546eb147🎜🎜</span></span>
🎜🎜🎜🎜🎜この時点で、両方の変数が定義されています: 🎜 $a🎜の内容は「hello」、🎜$hello🎜の内容は「world」です。したがって、次のように表現できます: 🎜🎜🎜🎜🎜<span style="color:#000000;"><span style="color:#0000BB;">5743f440a652dc89d9db8cd07ef6716c🎜🎜</span></span>
🎜🎜🎜🎜它们都会输出:hello world。
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下$$a[1]时,解析器需要知道是想要$a[1]作为一个变量呢,还是想要$$a作为一个变量并取出该变量中索引为 [1]的值。解决此问题的语法是,对第一种情况用${$a[1]},对第二种情况用${$a}[1]。
注意可变变量不能用于 PHP 的超全局变量数组。这意味着不能这样用:${$_GET}。
5. 常量
<?php define("GREETING", "Welcome to W3School.com.cn!"); echo GREETING; ?>
常量前面没有美元符号($);
常量默认为大小写敏感。按照惯例常量标识符总是大写的。
常量只能用 define() 函数定义,而不能通过赋值语句;
和 superglobals 一样,常量的范围是全局的。不用管作用域就可以在脚本的任何地方定义和访问常量;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量数据(boolean,integer,float 和 string)或 null。
1. 自定义常量
<?php define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." echo Constant; // outputs "Constant" and issues a notice. ?>
2. 类常量
可以在类中定义常量,常量的值必须是一个定值,不能是变量,类属性或其它操作(如函数调用)的结果。但在PHP5.6中,对常量进行了增强,允许常量计算,允许使用包 含数字、字符串字面值和常量的表达式结果来定义const常量。常量的值也可以为一个数组,但不能是变量。
定义类常量只能使用const关键字。
class MyClass { const AB = 2; public function showConstant(){ echo self::AB; } }
const 与 define 的区别?
1、const用于类成员变量的定义,一经定义,不可修改。Define不可以用于类成员变量的定义,可用于全局常量。
2、Const可在类中使用,define不能
3、Const不能再条件语句中定义常量
4、const采用普通的常量名称,define可以采用表达式作为名称
相关推荐:
以上がPHP での変数と定数の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。