Heim >Backend-Entwicklung >PHP-Tutorial >类中私有数据类型的 初始定义
<code><?php class id { private static $arr="abcdefghijklmnopqrstuvwxyz123457890"; private $len=35; // private $len=strlen("abcdefghijklmnopqrstuvwxyz123457890")-1; // private $len=strlen(self::$arr)-1; private $str=''; public $num; // public function __construct() // { // $this->len=strlen(self::$arr)-1; // } function create() { $this->str=''; srand ((double)microtime()*1000000); for($i=0;$istr.=substr(self::$arr,rand(0,$this->len),1); } return $this->str; } } $a=new id; echo $a->create(); ?> </code>
第5行换成 第6行或第7行都不行
出现错误( ! ) Parse error: syntax error, unexpected '(', expecting ',' or ';' in E:\wamp\www\index.php on line 7
<code><?php class id { private static $arr="abcdefghijklmnopqrstuvwxyz123457890"; private $len=35; // private $len=strlen("abcdefghijklmnopqrstuvwxyz123457890")-1; // private $len=strlen(self::$arr)-1; private $str=''; public $num; // public function __construct() // { // $this->len=strlen(self::$arr)-1; // } function create() { $this->str=''; srand ((double)microtime()*1000000); for($i=0;$istr.=substr(self::$arr,rand(0,$this->len),1); } return $this->str; } } $a=new id; echo $a->create(); ?> </code>
第5行换成 第6行或第7行都不行
出现错误( ! ) Parse error: syntax error, unexpected '(', expecting ',' or ';' in E:\wamp\www\index.php on line 7
PHP中是不能用表达式来初始化类属性的,必须是一个直观可得的常数值。
类的变量成员叫做“属性”,或者叫“字段”、“特征”,在本文档统一称为“属性”。属性声明是由关键字 public,protected 或者 private 开头,然后跟一个普通的变量声明来组成。属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值
PHP类属性
所以如果你想初始化$len
属性的话,就在构造函数里操作吧,如果$arr
不变的话写死也是可以的。