J'écris une application PHP et je veux m'assurer qu'elle fonctionnera sans erreur.
Le code d'origine:
<?php
$data = array('name' => 'test',
'id' => 'theID');
echo form_input($data);
?>
Est-ce que ce qui suit fonctionnerait sans erreur ou n'est pas recommandé pour une raison quelconque?
<?= form_input(['name' => 'test', 'id' => 'theID']); ?>
Y a-t-il une différence?
J'ai de nouveau regardé les données array()
et la méthode de tableau court avec des crochets []
dans PHP.net mais je ne suis pas sûr.
Et aussi, est-ce que la courte balise php convient <?= ?>
pour faire écho? Y a-t-il un problème de version? (fourni est activé dans php.ini)
php
arrays
syntax
square-bracket
Monsieur Web
la source
la source
Réponses:
Ce qui suit
[]
est pris en charge dans PHP> = 5.4:Ceci est une syntaxe courte uniquement et en PHP <5.4 cela ne fonctionnera pas .
la source
$data = new stdClass();$data->someProp = 'someValue';
utilisant laPHP
classe standard et$obj = (object) ['foo'=>'bar', 'baz'=>'biz'];
pour convertir un tableau ( en utilisant la coulée de type explicite) à un objet (stdClass) , mais en ce qui concerne la{}
, il pourrait être mis en œuvre à l' avenir , mais pas sûr tho :-)En 2019, cela fait 7 ans que la
[]
syntaxe a été ajoutée. C'est assez long pour tomberarray()
sauf dans les anciens programmes hérités, à mon avis.la source
Si vous utilisez la version 5.3 ou précédente, vous ne pouvez pas l'utiliser en
[]
tant que tableau ou tableau associatif. Si vous utilisez une version 5.4 ou ultérieure de PHP, vous pouvez utiliser soitarray()
ou[]
pour créer un tableau, un tableau associatif ou même un tableau multidimensionnel.la source
Et en ce qui concerne la
<?= ?>
partie de la question: elle n'est en grande partie pas mal vue, du moins pas en 2019.<?php
et<?=
.la source
En utilisant php 7.2, pour moi, il semble plutôt que [je suis un tableau] {je suis un tableau semble fonctionner}. La différence est entre
{}
et[]
. Mon codela source