ホームページ >バックエンド開発 >PHPの問題 >PHPの静的キーワードの機能は何ですか

PHPの静的キーワードの機能は何ですか

王林
王林オリジナル
2020-06-29 16:37:006487ブラウズ

php の static キーワードの機能は次のとおりです: 1. 関数内に配置して変数を変更すると、変数の値は関数の実行後も保存されます; 2. 静的キーワードをクラスに配置して、属性またはメソッドを変更します。変更がクラス属性の場合、値は保持されます。3. クラスのメソッド内の変数を変更します。4. グローバル スコープ内の変数を変更します。

PHPの静的キーワードの機能は何ですか

静的キーワードの機能は次のとおりです:

1. 変数を変更するには、これを関数内に置きます。

##2. 属性またはメソッドを変更するにはクラスに配置します;

3. 変数を変更するにはクラス メソッドに配置します。

4. グローバル スコープで変数を変更します。

キーワードによって表されるさまざまな意味は次のとおりです。関数が実行されても、変数値はまだ保存されています

以下に示すように:

<?php
function testStatic() {
    static $val = 1;
    echo $val;
    $val++;
}
testStatic();   //output 1
testStatic();   //output 2
testStatic();   //output 3
?>

2. 変更された属性またはメソッドには、クラス名を通じてアクセスできます。変更された属性がクラス属性の場合、予約値

は次のとおりです:

<?php
class Person {
    static $id = 0;
 
    function __construct() {
        self::$id++;
    }
 
    static function getId() {
        return self::$id;
    }
}
echo Person::$id;   //output 0
echo "<br/>";
 
$p1=new Person();
$p2=new Person();
$p3=new Person();
 
echo Person::$id;   //output 3
?>

3. クラス

を変更するメソッドの変数は次のとおりです:

<?php
class Person {
    static function tellAge() {
        static $age = 0;
        $age++;
        echo "The age is: $age
";
    }
}
echo Person::tellAge(); //output &#39;The age is: 1&#39;
echo Person::tellAge(); //output &#39;The age is: 2&#39;
echo Person::tellAge(); //output &#39;The age is: 3&#39;
echo Person::tellAge(); //output &#39;The age is: 4&#39;
?>

4グローバル スコープを変更する変数には実際的な意味はありません。

は次のとおりです: 表示:

<?php
static $name = 1;
$name++;
echo $name;
?>
另外:考虑到PHP变量作用域

<?php
include &#39;ChromePhp.php&#39;;
 
$age=0;
$age++;
 
function test1() {
    static $age = 100;
    $age++;
    ChromePhp::log($age);  //output 101
}
 
function test2() {
    static $age = 1000;
    $age++;
    ChromePhp::log($age); //output 1001
}
 
test1();
test2();
ChromePhp::log($age); //outpuut 1
?>

これら 3 つの変数は相互に影響を与えないことがわかります。また、PHP にはグローバル スコープと関数スコープのみがあり、ブロック スコープはありません。

さらに関連する知識を知りたい場合は、

php 中国語 Web サイト

にアクセスしてください。

以上がPHPの静的キーワードの機能は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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