Я пишу приложение на PHP и хочу убедиться, что оно будет работать без ошибок.
Оригинальный код:
<?php
$data = array('name' => 'test',
'id' => 'theID');
echo form_input($data);
?>
Будет ли следующее работать без ошибок или не рекомендуется по какой-то причине?
<?= form_input(['name' => 'test', 'id' => 'theID']); ?>
Есть ли разница?
Я снова посмотрел данные array()
и метод короткого массива в квадратных скобках []
в PHP.net, но я не уверен.
А также, подходит ли короткий php тег <?= ?>
для отображения? Есть ли проблема с версией? (включено в php.ini)
php
arrays
syntax
square-bracket
Mr.Web
источник
источник
Ответы:
Следующее
[]
поддерживается в PHP> = 5.4:Это только короткий синтаксис, и в PHP <5.4 он не будет работать .
источник
$data = new stdClass();$data->someProp = 'someValue';
помощьюPHP
стандартного класса и$obj = (object) ['foo'=>'bar', 'baz'=>'biz'];
преобразовать массив (используя явное приведение типа) к объекту (StdClass) А о{}
, это может быть реализовано в будущем , но не уверен Тхо :-)По состоянию на 2019 год прошло 7 лет с момента
[]
добавления синтаксиса. Наarray()
мой взгляд, этого достаточно, чтобы отбросить, за исключением старых унаследованных программ.источник
Если вы используете 5.3 или предыдущую версию, вы не можете использовать
[]
как массив, так и как ассоциативный массив. Если вы используете 5.4 или более позднюю версию PHP , то вы можете использовать либоarray()
или[]
создать массив, ассоциативный массив или даже многомерный массив.источник
А что касается
<?= ?>
части вопроса: это в значительной степени не осуждается, по крайней мере, не в 2019 году.<?php
и<?=
теги.источник
Используя php 7.2, мне кажется, что вместо этого я являюсь массивом. Кажется, я работаю с массивом. Разница между
{}
а[]
. Мой кодисточник