这个 php 行有啥问题?

Posted

技术标签:

【中文标题】这个 php 行有啥问题?【英文标题】: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.net/manual/en/language.variables.basics.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,它不是恒定的,因此是错误的。如果你需要像这样在对象中动态分配一个变量,你必须在构造函数中进行。 是的。成员变量必须是完全恒定的。不允许可变部分。

以上是关于这个 php 行有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

以下2行有啥区别? [复制]

在 MySQL 中删除软删除行有啥好处?

这个php登录代码有啥问题? [关闭]

这个用于创建 MySQL 表的 PHP 脚本有啥问题?

这个使用 Pear Mail 发送邮件的 PHP 脚本有啥问题?

你能告诉我PHP中的这个谷歌驱动API调用函数有啥问题吗