首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php常量数组

问php常量数组
EN

Stack Overflow用户
提问于 2012-08-26 17:38:09
回答 7查看 77.8K关注 0票数 64

这是在php中将数组作为常量的唯一方法,还是这是一个糟糕的代码:

代码语言:javascript
复制
class MyClass
{
    private static $myArray = array('test1','test2','test3');

    public static function getMyArray()
    {
       return self::$myArray;
    } 
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-08-26 18:08:34

您的代码很好-在5.6版本之前的PHP中,数组不能被声明为常量,因此静态方法可能是最好的方法。您应该考虑通过注释将此变量标记为常量:

代码语言:javascript
复制
/** @const */
private static $myArray = array(...);

使用PHP 5.6.0或更高版本,您可以声明数组常量:

代码语言:javascript
复制
const myArray = array(...);
票数 80
EN

Stack Overflow用户

发布于 2015-05-04 21:53:25

从PHP5.6.0(2014年8月28日)开始,可以定义数组常量(参见PHP 5.6.0 new features)。

代码语言:javascript
复制
class MyClass
{
    const MYARRAY = array('test1','test2','test3');

    public static function getMyArray()
    {
        /* use `self` to access class constants from inside the class definition. */
        return self::MYARRAY;
    } 
}

/* use the class name to access class constants from outside the class definition. */
echo MyClass::MYARRAY[0]; // echo 'test1'
echo MyClass::getMyArray()[1]; // echo 'test2'

$my = new MyClass();
echo $my->getMyArray()[2]; // echo 'test3'

在PHP 7.0.0 (2015年12月3日)中,数组常量可以用define()定义。在PHP5.6中,它们只能用const来定义。(参见PHP 7.0.0 new features)

代码语言:javascript
复制
define('MYARRAY', array('test1','test2','test3'));
票数 18
EN

Stack Overflow用户

发布于 2013-10-24 15:38:24

我自己在寻找答案的时候遇到了这个帖子。在思考之后,我将不得不将我的数组传递给每个需要它的函数。我使用数组和mysql的经验让我怀疑serialize是否可以工作。当然是这样的。

代码语言:javascript
复制
define("MYARRAY",     serialize($myarray));

function something() {
    $myarray= unserialize(MYARRAY);
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12129066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档