Piszę aplikację PHP i chcę się upewnić, że będzie działać bez błędów.
Oryginalny kod:
<?php
$data = array('name' => 'test',
'id' => 'theID');
echo form_input($data);
?>
Czy poniższe elementy działałyby bez błędów lub z jakiegoś powodu nie są zalecane?
<?= form_input(['name' => 'test', 'id' => 'theID']); ?>
Czy jest jakaś różnica?
Ponownie spojrzałem na dane array()
i metodę krótkiej tablicy z nawiasami kwadratowymi []
w PHP.net, ale nie jestem pewien.
A także, czy krótki tag php nadaje się <?= ?>
do echa? Czy jest jakiś problem z wersją? (pod warunkiem, że jest włączony w php.ini)
php
arrays
syntax
square-bracket
Panie Web
źródło
źródło
Odpowiedzi:
Następujące
[]
jest obsługiwane w PHP> = 5.4:To jest tylko krótka składnia i w PHP <5.4 nie będzie działać .
źródło
$data = new stdClass();$data->someProp = 'someValue';
za pomocąPHP
standardowego klasę i$obj = (object) ['foo'=>'bar', 'baz'=>'biz'];
przekonwertować tablicę (przy użyciu wyraźnej typu odlew) do obiektu (stdClass), ale odnoszące się do{}
, to może być realizowane w przyszłości, ale nie jestem pewien tho :-)Od 2019 roku minęło 7 lat od
[]
dodania składni.array()
Moim zdaniem jest to wystarczająco dużo czasu, aby zniknąć, z wyjątkiem starszych programów.źródło
Jeśli używasz wersji 5.3 lub poprzedniej, nie możesz używać zarówno
[]
jako tablicy, jak i tablicy asocjacyjnej. Jeśli używasz 5.4 lub nowszej wersji PHP następnie można użyć jednejarray()
lub[]
utworzyć tablicę asocjacyjną, czy nawet tablicy wielowymiarowej.źródło
A jeśli chodzi o
<?= ?>
część pytania: w dużej mierze nie jest to mile widziane, przynajmniej nie w 2019 roku.<?php
i<?=
tagów.źródło
Używając php 7.2, wydaje mi się, że raczej wtedy [Jestem tablicą] {Jestem tablicą wydaje się działać}. Różnica jest między
{}
a[]
. Mój kodźródło