请考虑以下代码:
class A {
private $a;
function f() {
A::a = 0; //error
$this->a = 0; //error
$self::a = 0; //error
}
}
如何更改f()中的$a
?
答案 0 :(得分:2)
你很亲密。之一:
self::$a = 0; //or
A::$a = 0;
如果它是静态的,或者:
$this->a = 0;
如果不是。
答案 1 :(得分:1)
我相信语法是:
self::$a
答案 2 :(得分:1)
<?php
class A {
private $a;
function f() {
//A::a = 0; //error
$this->a = 10; //ok
//$self::a = 0; //error
}
function display() {
echo 'a : ' . $this->a . '<br>';
}
}
$a = new A();
$a->f();
$a->display();
?>
输出:
a:10
如果你想要$ a是静态的,请使用以下内容:
<?php
class A {
private static $a;
function f() {
//A::$a = 0; //ok
//$this->a = 10; //Strict Standards warning: conflicting the $a with the static $a property
self::$a = 0; //ok
}
function display() {
echo 'a : ' . self::$a . '<br>';
}
}
$a = new A();
$a->f();
$a->display();
// notice that you can't use A::$a = 10; here since $a is private
?>