替换PHP 5.6中的数组定义

时间:2019-03-15 10:10:06

标签: php wordpress const

我的本地主机PHP7上的

正在运行,并且我正在使用define()函数来定义数组。一切正常。

define('JOBS_CREATORS', ['aaa@admin.com', 'bbbb@admin.com']);

我们知道它可以在PHP7版本中使用。我用Google搜索并找到了const或更低版本的PHP5.6关键字。

据我所知const仅在class中起作用。

但是我正在使用WordPress,因此我需要在functions.php文件中进行定义。

是否有其他方法可以在不使用class的情况下定义数组?

3 个答案:

答案 0 :(得分:1)

您可以更新常量以接受序列化数组。

define('JOBS_CREATORS', serialize(['aaa@admin.com', 'bbbb@admin.com']));

然后

if(in_array("aaa@admin.com", unserialize(JOBS_CREATORS))){ ...

答案 1 :(得分:0)

在PHP 5.6中,仍然可以使用const关键字来做到这一点(请参阅本文):

PHP Constants Containing Arrays?

const JOBS_CREATORS = ['aaa@admin.com', 'bbbb@admin.com'];

答案 2 :(得分:0)

@Spudley 建议使用json_encode而不是serialize。我将json_encodejson_decode用作:

定义:

define('JOBS_CREATORS', json_encode(['aaa@admin.com', 'bbbb@admin.com']));

获取:

echo '<pre>';print_r(json_decode(JOBS_CREATORS)); echo '</pre>';

但是 @TahaPaksu 的答案也很有用。

感谢 @Spudley @TahaPaksu :)