PHP语法错误

PHP语法错误,php,syntax,Php,Syntax,有人能给我解释一下为什么下面的代码会导致语法错误(意外的“=”) 显然,我不会将这些值留空,但在继续之前,我需要修复当前问题 谢谢你的建议 谢谢。试试看 $this->${$unitprefix.'year'} = ''; 但要给出更好的建议,最好了解类的属性以及$unitprefix包含的内容 参考: 要提供更多详细信息: 解析器不清楚您编写代码的方式。假设$unitprefix='foo',可以用两种方式解释代码: 获取$this->$unitprefix的值,即$this->foo

有人能给我解释一下为什么下面的代码会导致语法错误(意外的“=”)

显然,我不会将这些值留空,但在继续之前,我需要修复当前问题

谢谢你的建议

谢谢。

试试看

$this->${$unitprefix.'year'} = '';
但要给出更好的建议,最好了解类的属性以及
$unitprefix
包含的内容

参考:

要提供更多详细信息:
解析器不清楚您编写代码的方式。假设
$unitprefix='foo'
,可以用两种方式解释代码:

  • 获取
    $this->$unitprefix
    的值,即
    $this->foo
    并附加
    'year'
    。然后您的代码将导致(使用
    $this->foo=bar
    ):

    'baryear'=''
    我猜这就是解析器所做的,因为这对应于从左到右的代码评估

  • 'year'
    附加到
    $unitprefix
    中,并获取具有结果名称的属性,即结果代码为:

    $this->fooyear=''

  • 第二个是您想要的beviour,但是没有
    ${}
    解析器不知道该做什么。

    试试看

    $this->${$unitprefix.'year'} = '';
    
    但要给出更好的建议,最好了解类的属性以及
    $unitprefix
    包含的内容

    参考:

    要提供更多详细信息:
    解析器不清楚您编写代码的方式。假设
    $unitprefix='foo'
    ,可以用两种方式解释代码:

  • 获取
    $this->$unitprefix
    的值,即
    $this->foo
    并附加
    'year'
    。然后您的代码将导致(使用
    $this->foo=bar
    ):

    'baryear'=''
    我猜这就是解析器所做的,因为这对应于从左到右的代码评估

  • 'year'
    附加到
    $unitprefix
    中,并获取具有结果名称的属性,即结果代码为:

    $this->fooyear=''

  • 第二个是您想要的行为,但是如果没有
    ${}
    ,解析器不知道该做什么