所以我得到了这个数组,其中包含每个月份数字的德语等值词(不带前导零):
$months= array(1=>"Januar",
2=>"Februar",
3=>"März",
4=>"April",
5=>"Mai",
6=>"Juni",
7=>"Juli",
8=>"August",
9=>"September",
10=>"Oktober",
11=>"November",
12=>"Dezember");
现在我获取 3 天前的月份:
$german = date("n", strtotime("-3 days"));
在 $months 中回显 $german 的值会产生错误:
echo $month($german);
错误信息:
Fatal error: Function name must be a string in X on line X
单独回显 $german
不会产生错误。
回显 $months(date("n", strtotime("some $row value from database")))
不会产生错误。
有什么问题?
我已经尝试这样做:echo $months((int)$german)
,但这也不起作用。
最佳答案
在您的关联数组中,您需要用引号将键括起来。
示例:
$months = array("1" => "Januar",
"2" => "Februar",
"3" => "März",
"4" => "April",
"5" => "Mai",
"6" => "Juni",
"7" => "Juli",
"8" => "August",
"9" => "September",
"10" => "Oktober",
"11" => "November",
"12" => "Dezember");
进一步思考:
因为你的键是数字,你可以放弃关联数组并简单地使用索引数组:
$months = array("Neujahr",
"Januar",
"Februar",
"März",
"April",
"Mai",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"Dezember");
从这个索引数组:
array_search("Oktober", $months)
给出10
。$months[6]
给出"Juni"
关于PHP:通过德语数组回显日期会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46630590/