В чем причина этой ошибке Constants may only evaluate to scalar values

323
10 сентября 2017, 02:16

Warning: Constants may only evaluate to scalar values

Warning: Illegal string offset 'Anderson'

Warning: Illegal string offset 'name'

Код:

http://sandbox.onlinephpfunctions.com/code/c8a7fee1106138c744face89f03cc9b13b4e29b0

Answer 1

Открываем страницу с описанием новой функциональности PHP версии 7: http://php.net/manual/ru/migration70.new-features.php – и находим:

Задание констант массивов с помощью define()

Можно задать константу типа array с помощью функции define(). В PHP 5.6, такие константы можно было задавать только с помощью const.

Именно поэтому в версиях PHP < 7.0 этот код:

define(
    'DOSSIER',
    [
        "Anderson" => ["name" => "Thomas", "born" => "1962-03-11"], 
        "Reeves"   => ["name" => "Keanu",  "born" => "1962-09-02"],
    ]
);

– вызовет такой ворнинг:

Warning: Constants may only evaluate to scalar values

READ ALSO
Прием TCP пакета на PHP

Прием TCP пакета на PHP

Отправляю TCP пакет из программы на C#

405
Не работает wp_enqueue_style()

Не работает wp_enqueue_style()

wp_enqueue_style(); не работаетне могу понять в чем проблема

397
Не выводит результат, php7

Не выводит результат, php7

В чем проблема, уже сижу полчаса и не могу понять в чем я допустил ошибку

240
При попытке откомпелировать VS 2017 выдает: не удается открыть источник файл &ldquo;stdio.h&rdquo;

При попытке откомпелировать VS 2017 выдает: не удается открыть источник файл “stdio.h”

Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка (активно) E1696 не удается открыть источник файл "stdioh" ConsoleApplication1...

1808