将数组中的整数和字符串结合起来
问题描述:
有人可以告诉我我在哪里搞砸了和/或我该如何解决这个问题?将数组中的整数和字符串结合起来
工作代码(PHP):
public $data = array(
....
....
'copyright' => array(
'es' => '2013 Mi Empresa',
'en' => '2013 My Company',
),
....
....
);
断码:
public $data = array(
....
....
'copyright' => array(
'es' => date('Y') . ' Mi Empresa',
'en' => date('Y') . ' My Company',
),
....
....
);
,当我说坏了,我的意思是导致<body>
是空的。我也尝试加入(string)date('Y')
代替date('Y')
,无济于事。
在此先感谢!
答
不,你不能设置你的属性这样的:
class Test
{
// this won't work
public $data = array(
'copyright' => array(
'es' => date('Y') . ' Mi Empresa',
'en' => date('Y') . ' My Company',
),
);
// even as simple as this
public $date_now = date('Y-m-d');
}
引述manual:
他们(属性)通过使用公共的关键字之一定义,保护,或私人,然后是一个正常的变量声明。这个声明可能包括一个初始化,但是这个初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且不能依赖运行时信息来进行评估。
它只是意味着PHP在编译时不会执行这样的操作;您不能将计算值和函数分配给常量。
设置它的构造函数:
class Test
{
public $data = array(
'copyright' => array(
'es' => '',
'en' => '' ,
),
);
public $date_today = '';
public function __construct()
{
$this->data['copyright']['es'] = date('Y') . ' Mi Empresa';
$this->data['copyright']['en'] = date('Y') . ' My Company';
$this->date_today = date('Y-m-d');
}
}
$test = new Test();
echo '<pre>';
print_r($test);
旁注:在没有错误问题的事情的问题是,最有可能的错误报告被关闭。 (白色的死亡屏幕)。
始终打开它的发展阶段:
error_reporting(E_ALL);
ini_set('display_errors', '1');
你什么错误? – 2014-10-31 00:38:33
PHP连接整数和字符串没有问题。在这种情况下,它总是将一个整数转换为一个字符串。你可以'var_dump(date('Y')。'Mi Empresa');'看看输出是什么? – 2014-10-31 00:38:35
这是一个类属性声明?不,你不能这样做,它需要在构造函数中设置 – Ghost 2014-10-31 00:38:38