目前我正在设置这样的数组...
public function setup_array()
{
$columns = array(
'date1' => '2014-01-24',
'date2' => '2014-02-14',
'date3' => '2014-03-11',
'date4' => '2014-04-01'
);
return $columns;
}
这有效,但是我想使用已经设置的变量代替日期......就这样......
public function setup_array()
{
$columns = array(
'date1' => '$date1',
'date2' => '$date1',
'date3' => '$date1',
'date4' => '$date1'
);
return $columns;
}
我试过这样做虽然$ date变量可以设置,但实际上它会打印$ date1或者自己检索变量值。
我做错了什么?
答案 0 :(得分:4)
没有任何传递的参数 - $date1
在函数范围内是未知的,因此不会被替换。
public function setup_array($date1)
{
$columns = array(
'date1' => $date1,
'date2' => $date1,
'date3' => $date1,
'date4' => $date1
);
return $columns;
}
答案 1 :(得分:2)
删除引号
public function setup_array($date1)
{
$columns = array(
'date1' => $date1,
'date2' => $date1,
'date3' => $date1,
'date4' => $date1
);
return $columns;
}
答案 2 :(得分:1)
删除引号
public function setup_array($date1)
{
$columns = array(
'date1' => $date1,
'date2' => $date1,
'date3' => $date1,
'date4' => $date1
);
return $columns;
}
答案 3 :(得分:0)
删除单引号
public function setup_array()
{
$columns = array(
'date1' => $date1,
'date2' => $date1,
'date3' => $date1,
'date4' => $date1
);
return $columns;
}
<强>解释强>
$expand=1;$either=2;
echo 'Variables do not $expand $either';
// Outputs: Variables do not $expand $either
echo "Variables do not $expand $either";
// Outputs: Variables do not 2 1
更多详情String PHP
答案 4 :(得分:0)
您需要了解PHP语法
你的第一个例子中的引用并不意味着&#34;用作数组值的东西&#34;但是常规的字符串分隔符。即这些引号属于字符串,而不属于数组。
答案 5 :(得分:0)
另请注意\ DateTime没有__toString()方法,因此如果$ date1是\ DateTime的实例,则必须调用$date1->format('Y-m-d')
public function setup_array($date1)
{
$columns = array(
'date1' => $date1->format('Y-m-d'),
'date2' => $date1->format('Y-m-d'),
'date3' => $date1->format('Y-m-d'),
'date4' => $date1->format('Y-m-d'),
);
return $columns;
}
否则它会在回显或强制转换为字符串时抛出\ Exception。 如果$ date1是标量,你可以使用双引号“$ date1”,它应该仍然有效。 见[http://www.php.net/manual/es/class.datetime.php]