在数组中连接两个字符串时出错-PHP
可能重复:在数组中连接两个字符串时出错-PHP,php,arrays,Php,Arrays,可能重复: 以下代码: public $Options = array (0 => 'aaaaa' . 'bbbbb'); 给出以下错误: Parse error: syntax error, unexpected '.', expecting ')' 我本以为它只会给0一个aaaabbbbb的值 这是PHP5。我是否错过了什么,我相信我在过去已经用过很多次了 谢谢你的帮助。我测试了你的代码。它在这里起作用。 你试过括号吗 public $Options = array (0
以下代码:
public $Options = array (0 => 'aaaaa' . 'bbbbb');
给出以下错误:
Parse error: syntax error, unexpected '.', expecting ')'
我本以为它只会给0一个aaaabbbbb的值
这是PHP5。我是否错过了什么,我相信我在过去已经用过很多次了
谢谢你的帮助。我测试了你的代码。它在这里起作用。 你试过括号吗
public $Options = array (0 => ('aaaaa' . 'bbbbb'));
奇怪。我测试了你的代码。它在这里起作用。 你试过括号吗
public $Options = array (0 => ('aaaaa' . 'bbbbb'));
在类的属性定义中连接字符串是不正确的。您需要在类的构造函数中执行此操作 在类的属性定义中连接字符串是不正确的。您需要在类的构造函数中执行此操作 这是因为这样做是作为类属性声明的一部分进行的,这是不可能的,因为: …声明可能包括 初始化,但是这个 初始化必须是常量 值——也就是说,它必须能够 在编译时计算,并且不能 依赖于中的运行时信息 要评估的订单 有关更多信息,请参阅 但是,您可以根据需要在构造函数中设置此属性,一切都会很好:
class TestClass {
public $Options;
function __construct() {
$this->Options = array (0 => 'aaaaa' . 'bbbbb');
}
}
这是因为这样做是作为类属性声明的一部分,这是不可能的,因为: …声明可能包括 初始化,但是这个 初始化必须是常量 值——也就是说,它必须能够 在编译时计算,并且不能 依赖于中的运行时信息 要评估的订单 有关更多信息,请参阅 但是,您可以根据需要在构造函数中设置此属性,一切都会很好:
class TestClass {
public $Options;
function __construct() {
$this->Options = array (0 => 'aaaaa' . 'bbbbb');
}
}
尝试了$Options=array(0=>aaaaa.'bbbbb');打印(可选);它在PHP5.3.3tried$Options=array(0=>aaaaaa.'bbbbb')中运行良好;打印(可选);它在PHP5.3.3中运行良好。我更改了代码,现在运行良好。奇怪的是,我有一些代码,其中数组是在类属性声明中定义的。它运行在不同的服务器上,因此可能会有不同的PHP版本?@jimmy如果可以在编译时构造该数组,那么它可能会很好。也就是说,级联显然不能在编译时执行,因此出现了问题。我更改了代码,现在工作正常。奇怪的是,我有一些代码,其中数组是在类属性声明中定义的。它运行在不同的服务器上,因此可能会有不同的PHP版本?@jimmy如果可以在编译时构造该数组,那么它可能会很好。也就是说,级联显然不能在编译时执行,因此,您就遇到了这个问题。因为您也可以在类dec中声明它。我假设它一定与服务器上的PHP版本有关?我猜它与PHP版本有关-它在PHP 5.5.38上不适用,但在PHP 5.6.38上可以正常工作,因为您也可以在类dec中声明它。我假设它一定与PHP版本有关服务器上的PHP版本?我猜它取决于PHP版本-它在PHP5.5.38上对我不起作用,但在PHP5.6.38上效果很好