Php:无法在声明中分配属性值

标签 php

我不明白全局上下文和类上下文之间变量分配的不同处理背后的基本原理:

$var1 = "a" . "b"; # PHP syntax o.k.

class myClass {
    private $var2 = "a" . "b"; # PHP Parse error:  syntax error, unexpected '.', expecting ',' or ';'
}

P.S.:属性的可见性(私有(private)/ protected /公共(public))不起作用。

最佳答案

这不是“类上下文中的变量赋值”。 private $var 为该类声明了一个属性,并且您还为其指定了一个默认值。您在此处声明类的结构,这与过程代码中的变量赋值不同。类结构由解析器解析并由编译器编译,属性的默认值在此解析/编译步骤中建立。编译器不执行任何过程代码;它只能处理常数值

因此,您不能声明具有需要评估的默认值的类属性,因为处理类声明的 PHP 部分,解析器/编译器,确实不是评估

关于Php:无法在声明中分配属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16457912/

相关文章:

php - 带有附加列的 SQL 数据透视表

php - 如何将复选框添加到行结果

php - 将具有 130 万条记录的表从一个 MysQL 服务器移动到另一个(在不同的物理服务器上)

php - 如果项目有许多(动态)属性,则多个左连接

PHP 到 MySql 表单处理多个选择复选框

php - 我无法使用 docker-machine 和 docker-compose 运行 LEMP

php - 从标准对象中提取变量

php - 在 php 5.5.1/apache 2.4.6 中忽略带下划线的 header 名称

javascript - 倒计时器从 24 小时到零时开始计时

php - PHP 字符串到日期