84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
<?php $GLOBALS['arr'] = array(1=>1,2=>2); define("ABC",$GLOBALS['arr'][1]); # 这个定义可以 class test{ static $a = $GLOBALS['arr'][1]; # 这个初始化有语法错误 }
走同样的路,发现不同的人生
类的变量成员叫做“属性”,或者叫“字段”、“特征”,在本文档统一称为“属性”。属性声明是由关键字 public,protected 或者 private 开头,然后跟一个普通的变量声明来组成。属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值http://php.net/manual/zh/lang... static $a = ABC; 就像其它所有的 PHP 静态变量一样,静态属性只能被初始化为文字或常量,不能使用表达式。所以可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象。http://php.net/manual/zh/lang...
static $a = ABC;
只支持字面量
只能是字面上的常量,就是这个值在编译阶段就能确认而不是在运行阶段才被确认。
评论里不能发图片。所以写成答案。
@TIGERB 的说法是错误的。静态变量可以是数组。
@苏生不惑 的答案是正确的。静态变量不能引用其他变量。因为静态变量在php解释引擎加载这个类的时候,就已经会去给静态变量赋值了。但是这个时候,这个静态变量如果引用了其他变量,那个变量可能还没初始化。所以PHP规定静态变量的初始值不能为其他变量。
如图:
类的变量成员叫做“属性”,或者叫“字段”、“特征”,在本文档统一称为“属性”。属性声明是由关键字 public,protected 或者 private 开头,然后跟一个普通的变量声明来组成。属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值
http://php.net/manual/zh/lang...
static $a = ABC;
就像其它所有的 PHP 静态变量一样,静态属性只能被初始化为文字或常量,不能使用表达式。所以可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象。
http://php.net/manual/zh/lang...
只支持字面量
只能是字面上的常量,就是这个值在编译阶段就能确认而不是在运行阶段才被确认。
评论里不能发图片。所以写成答案。
@TIGERB 的说法是错误的。静态变量可以是数组。
@苏生不惑 的答案是正确的。静态变量不能引用其他变量。因为静态变量在php解释引擎加载这个类的时候,就已经会去给静态变量赋值了。但是这个时候,这个静态变量如果引用了其他变量,那个变量可能还没初始化。所以PHP规定静态变量的初始值不能为其他变量。
如图: