замену массива определите в php 5.6 - PullRequest
1 голос
/ 15 марта 2019

на моем локальном хосте PHP7 запущен, и я использую функцию define() для определения массива. Работает нормально.

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

Как мы знаем, это работает в PHP7 версии. Я гуглил и нашел ключевое слово const, которое работает в PHP5.6 или ниже.

Как я знаю, const работает только в пределах class.

Но я использую WordPress, поэтому мне нужно определить в functions.php файле.

Есть ли другой способ определить массив без использования class?

Ответы [ 3 ]

1 голос
/ 15 марта 2019

Вы можете обновить свою константу, чтобы вместо нее принимать сериализованный массив.

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

, затем

if(in_array("aaa@admin.com", unserialize(JOBS_CREATORS))){ ...
0 голосов
/ 15 марта 2019

Поскольку @ Spudley предложил использовать json_encode вместо serialize.Я использовал json_encode и json_decode как:

Определено:

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

Получение:

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

Но @ TahaPaksu ответ также полезен.

Спасибо, @ Spudley и @ TahaPaksu :)

0 голосов
/ 15 марта 2019

Это все еще возможно сделать в PHP 5.6, используя ключевое слово const (см. В этом посте):

PHP-константы, содержащие массивы?

const JOBS_CREATORS = ['aaa@admin.com', 'bbbb@admin.com'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...