php - 在 php 中处理构造函数时出错

标签 php arrays

运行以下 PHP 代码时出现以下错误

class tableData
{
    private $row1 = array("Kalle1", "address1", "postal code1", "1@email.se", "070111001", "08111001");
    private $row2 = array("kalle2", "address2", "postcode2", "2@email.se", "070111002", "08111002");
    private $row3 = array("kalle3", "address3", "postcode3", "3@email.se", "070111003", "08111003");
    private $row4 = array("kalle4", "address4", "postcode4", "4@email.se", "070111004", "08111004");
    private $rader = array(array($row1),array($row2),array($row3),array($row4));
}

错误对应变量$rader:

Parse error: syntax error, unexpected '$row1' (T_VARIABLE), expecting ')' in C:\xampp\htdocs\test_k.php on line 15

谁能帮我改正这个错误?

最佳答案

The PHP manual states :

This declaration [of class properties] may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.

private $rader = array(array($row1),array($row2),array($row3),array($row4));

所以你的 $row1 不是常量值,它需要运行时信息,即变量持有的值。

当 PHP 编译您的类时,在属性初始化时,它不知道您的 $row1 变量持有什么值。

您必须将该变量设置为空或 null(无论适合什么),或者有一个 setter 方法来设置它并首先调用它,或者如果这始终是相同的数据,则使用构造函数。

基本上,您不能根据稍后在运行时来自对象的值来设置属性。

关于php - 在 php 中处理构造函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49724314/

相关文章:

php - 如何通过 php 页面检索数据库值到 jquery 自动完成框

php - 处理和防止死锁的正确方法

c# - 执行此代码的最有效方法是什么?

javascript - 编写递归搜索函数以返回对象;

arrays - 将数组传递给函数非常慢

php - WordPress wp-cli 生成错误 : "Call to undefined function getallheaders"

php - 如何计算特定组的多个时间戳值的时间差?

JQuery Datatables 和 ColdFusion - 如何获取该格式的数组源数据?

php - Laravel 5.2 - 使用 composer 和 git bash 安装 laravel 时出错

java - 从 JSON 中提取字节数组