属性
类的变量成员叫做属性。属性声明是由关键字 public
, protected
或者 private
开头,然后跟一个普通的变量声明来组成。属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。在类的成员方法里面,可以用对象运算符 $this->property
这种方式来访问非静态属性。静态属性则是用范围解析操作符 self::$property
来访问。
<?php
define('QUX', tmpfile());
class Foo
{
/**
* Just a test property.
*
* @var int
*/
public int $foo = 2 + 3;
/**
* Just a test property.
*
* @var string
*/
public string $bar = <<<EOT
bar
EOT;
/**
* Just a test property.
*
* @var array
*/
public array $baz = [true, false];
/**
* Just a test property.
*
* @var resource
*/
public $qux = QUX;
}
$foo = new Foo();
var_dump($foo->foo); // int(5)
var_dump($foo->bar); // string(3) "bar"
var_dump($foo->baz); // array(2) { [0]=> bool(true) [1]=> bool(false) }
var_dump($foo->qux); // resource(4) of type (stream)