【发布时间】:2014-02-01 23:38:58
【问题描述】:
当我尝试将数组定义为常量时,有一个warning! The constant must be a scalar value。但是我如何定义一个我不能在我的脚本中修改的数组呢?有什么解决办法吗?
【问题讨论】:
-
其实不需要!... 定义一个函数并返回你的数组。所以在需要的时候调用这个函数。
-
也有很好的解决办法,谢谢
当我尝试将数组定义为常量时,有一个warning! The constant must be a scalar value。但是我如何定义一个我不能在我的脚本中修改的数组呢?有什么解决办法吗?
【问题讨论】:
在 PHP 中你不能这样做,所以你可以使用一些技巧:
其中一种方法是使用serialize(也可以使用 implode/explode、json_encode/json_decode):
define ("MyArray", serialize (array ("first", "second", "third")));
然后:
$MyArray = unserialize (MyArray); //here your array again
另一种方法是使用类,其中您将拥有private static 变量
class arrayConstant{
private static $myArray=array ("first", "second", "third"); //here you set your array
public static function getmyArray() {
return self::$myArray; //return array
}
}
$arrayConstant = arrayConstant::getArray(); //getting the array
【讨论】:
private属性的类,但是没有OOP的解决方案也很好:)
define ("MyArray", serialize (array ("first", "second", "third"))); 这是什么? @sergio 请解释一下,如何以及在何处使用此代码?
$MyArray = unserialize (MyArray); - 对我来说它有效。