2017-02-04 8 views
4

Как уже упоминалось на http://php.net/manual/en/language.types.array.phpPhp 7.1 - массив Пустой оператор индекс

Note: As of PHP 7.1.0, applying the empty index operator on a string throws a fatal error. Formerly, the string was silently converted to an array.

Может кто-то пожалуйста, скажите мне, что это значит с примером?

Как это повлияет на мой код?

Спасибо!

ответ

3

В PHP < 7.1:

$var = 'somestring'; 
$var[] = 'a'; # yields array with two elements ['somestring', 'a'] 

В PHP> = 7.1 это дает

Fatal error: Uncaught Error: [] operator not supported for strings

+0

Звучит правильно. Но [я вижу] (https://3v4l.org/oaadg#output), что ошибка влияет и на 5.6 и 7.0 ...? – HPierce

+0

Есть альтернативные варианты? У меня есть код, в котором я использую это, и я не могу изменить имя переменной. –

+0

@DevAggarwal: Какова ваша конкретная проблема? –

0

Формулировка в документации это немного странно, но что изменилось в 7.1, когда у вас есть пустой строка, а затем получить доступ к его таким образом: 3v4l.org/V5YJa

взглянуть на код ниже:

<?php 
$rootbeer = ''; 
$rootbeer[] = 'T'; 
?> 

Выход с PHP 7.1.0:

Fatal error: Uncaught Error: [] operator not supported for strings in your_file.php:4 
Stack trace: 
#0 {main} 
    thrown in your_file.php on line 4 

С PHP версии до до PHP 7.0.1, строка получает беззвучно преобразуется в массив без выдачи какого-либо предупреждения или ошибки.

Надеюсь, это устранило бы ваши сомнения.

 Смежные вопросы

  • Нет связанных вопросов^_^