我正在尝试使用关联数组为每个国家/地区的办公室名称声明一个常量。
我的声明代码如下:
define( "OUR_OFFICE", [
"Japan" => "Tokyo Shibuya Office",
"Taiwan" => "Taipei Shilin Office",
"Korea" => "Seoul Yongsan Office",
"Singapore" => "Singapore Novena Office",
"Australia" => "Sydney Darlinghurst Office"
]);
但是,它只显示消息:
警告:常量只能评估为标量值
是否可以使用关联数组声明常量?
非常感谢!!!
答案 0 :(得分:6)
您发布的代码不适用于PHP 5.
Declaring constant arrays using define
是一项新功能introduced in PHP 7.0。
Since PHP 5.6可以define a constant array using the const
keyword:
select xmlquery(
'for $i in /FM/SectionsList/Section where $i/SectionId="Section_two"
return
for $j in $i/Fields/FormField where $j/FieldId="REQUESTNAME"
return $j/FieldValue/text()'
passing xmltype(req_details)
returning content) as result
from your_table;
RESULT
--------------------
JASMINE
documentation突出显示define()
和const
之间的差异:
与使用
const OUR_OFFICE = [ "Japan" => "Tokyo Shibuya Office", "Taiwan" => "Taipei Shilin Office", "Korea" => "Seoul Yongsan Office", "Singapore" => "Singapore Novena Office", "Australia" => "Sydney Darlinghurst Office", ];
定义常量相反,使用define()
关键字定义的常量必须在顶级范围内声明,因为它们是在编译时定义的。这意味着它们不能在函数,循环,if语句或const
/try
块内声明。
答案 1 :(得分:3)
在PHP 7中,也接受数组值。
但是在PHP 7之前,您可以这样做,使用define:
在其他地方传递数组instantclient-precomp-linux.x64-12.1.0.2.0.zip