PHP での変数と定数の分析例

小云云
リリース: 2023-03-21 13:52:02
オリジナル
1483 人が閲覧しました

PHP には 4 つの異なる変数スコープがあります: static、parameter、global、local。関数。関数内でグローバル変数を使用するには、global キーワードを使用します。

 <?php
$a = 1;
$b = 2;
function Sum()
{
    global $a, $b;
    $b = $a + $b;
}
Sum();
?>
ログイン後にコピー
グローバル スコープの変数にアクセスする 2 番目の方法は、特別な PHP カスタム

$GLOBALS

配列を使用することです。前の例は次のように記述できます:

 <?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;"><?php<br/ >$a </span><span style="color:#007700;">= </h4><span style="color:#DD0000;">"こんにちは"<p style="text-align: left;"><span style="color:#007700;">;</p><span style="color:#0000BB;">?><table border="0"><tbody><span style="color:#000000;"><span style="color:#0000BB;"><?php<br/>$a </span><span style="color:#007700;">= </span><span style="color:#DD0000;">"hello"</span><span style="color:#007700;">;</span><span style="color:#0000BB;">?></span></span>

一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。在上面的例子中hello 使用了两个美元符号($)以后,就可以作为一个可变变量的变量了。例如:

<span style="color:#000000;"><span style="color:#0000BB;"><?php</span><span style="color:#007700;">$</span><span style="color:#0000BB;">$a </span><span style="color:#007700;">= </span><span style="color:#DD0000;">"world"</span><span style="color:#007700;">;</span><span style="color:#0000BB;">?></span></span>

这时,两个变量都被定义了:$a 的内容是“hello”并且$hello 的内容是“world”。因此,可以表述为:

<span style="color:#000000;"><span style="color:#0000BB;"><?php</span><span style="color:#007700;">echo </span><span style="color:#DD0000;">"$a ${$a}"</span><span style="color:#007700;">;</span><span style="color:#0000BB;">?></span></span>

以下写法更准确并且会输出同样的结果:

変数変数は、通常の変数の値を変数変数の変数名として取得します。上記の例では、hello
<span style="color:#000000;"><span style="color:#0000BB;"><?php</span><span style="color:#007700;">echo </span><span style="color:#DD0000;">"$a $hello"</span><span style="color:#007700;">;</span><span style="color:#0000BB;">?></span></span>
にドル記号 ($) が 2 つ使用されており、可変変数として使用できます。例: 🎜🎜🎜🎜🎜<span style="color:#000000;"><span style="color:#0000BB;"><?php🎜<span style="color:#007700; " >$🎜<span style="color:#0000BB;">$a 🎜<span style="color:#007700;">= 🎜<span style="color:#DD0000;">"世界"🎜< span style="color:#007700;">;🎜<span style="color:#0000BB;">?>🎜🎜🎜🎜🎜🎜🎜この時点で、両方の変数が定義されています: 🎜 $a🎜の内容は「hello」、🎜$hello🎜の内容は「world」です。したがって、次のように表現できます: 🎜🎜🎜🎜🎜<span style="color:#000000;"><span style="color:#0000BB;"><?php🎜<span style=" color: #007700;">エコー 🎜<span style="color:#DD0000;">"$a ${$a}"🎜<span style="color:#007700;">;🎜<span style=" color: #0000BB;">?> <span style="color:#0000BB;"><?php🎜<span style="color:#007700;">エコー 🎜<span style="color:#DD0000; ">"$a $hello"🎜 <span style="color:#007700;">;🎜<span style="color:#0000BB;">?>🎜🎜🎜🎜🎜🎜

它们都会输出: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 一样,常量的范围是全局的。不用管作用域就可以在脚本的任何地方定义和访问常量;

  • 常量一旦定义就不能被重新定义或者取消定义;

  • 常量的值只能是标量数据(booleanintegerfloatstring)或 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中变量的数据类型判断函数实例代码

php中变量及部分适用方法_PHP教程

以上がPHP での変数と定数の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!