【问题标题】:What is wrong with this php line?这个 php 行有什么问题?
【发布时间】:2011-10-19 10:09:35
【问题描述】:
var $foo = array('foo' => $bar);

我收到一个 UNEXPECTED T_VARIABLE 错误。创建数组时不能使用变量?

这个声明在一个类中,我正在运行 PHP v5.3.2

删除 var 时,我收到另一个错误 Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION

谢谢

【问题讨论】:

标签: php


【解决方案1】:

尝试:

$foo = array('foo' => $bar);

请参阅此问题,了解您遇到问题的原因: What does PHP keyword 'var' do?

【讨论】:

    【解决方案2】:

    关键字var 仅在类中声明变量(即实例变量)时使用,但即使这样也是 PHP4 语法,目前已被弃用。这会做你想做的事:

    $foo = array('foo' => $bar);
    

    【讨论】:

    • PHP 中没有 'var' 关键字,句号。变量有全局/受保护/私有/公共前缀,但没有“var”。
    • 如果您使用的是足够新的 PHP 版本,我认为它实际上已被完全弃用。从 PHP 5.4 开始(如果我没记错的话),不要使用 var
    • php.net/manual/en/language.oop5.properties.php - In versions of PHP from 5.0 to 5.1.3, the use of var was considered deprecated and would issue an E_STRICT warning, but since PHP 5.1.3 it is no longer deprecated and does not issue the warning.... 请记住
    • Marc B:这是 PHP 以前版本中的关键字,这就是词法分析器选择 T_VARIABLE 的原因。
    【解决方案3】:

    var 不是 PHP 语法...一个简单的

    $foo = array('foo' => $bar);
    

    足够了。

    【讨论】:

    • @alex:您不能在类中声明“动态”变量。他们必须评估为常数。 $var = array('a' => 'b') 会很好,因为这都是不变的。你在那里有$bar,它不是恒定的,因此是错误的。如果你需要像这样在对象中动态分配一个变量,你必须在构造函数中进行。
    • 是的。成员变量必须是完全恒定的。不允许可变部分。
    猜你喜欢
    • 2010-11-01
    • 2011-08-26
    • 1970-01-01
    • 2011-02-13
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多