Estoy escribiendo una aplicación PHP y quiero asegurarme de que funcione sin errores.
El código original:
<?php
$data = array('name' => 'test',
'id' => 'theID');
echo form_input($data);
?>
¿Funcionaría lo siguiente sin errores o no se recomienda por alguna razón?
<?= form_input(['name' => 'test', 'id' => 'theID']); ?>
¿Hay alguna diferencia?
He revisado nuevamente los datos array()
y el método de matriz corta con corchetes []
en PHP.net, pero no estoy seguro.
Y también, ¿está bien la etiqueta corta de php <?= ?>
para hacer eco? ¿Hay algún problema con la versión? (siempre que esté habilitado en php.ini)
php
arrays
syntax
square-bracket
Mr.Web
fuente
fuente
Respuestas:
Lo siguiente
[]
es compatible con PHP> = 5.4:Esta es una sintaxis corta solamente y en PHP <5.4 no funcionará .
fuente
$data = new stdClass();$data->someProp = 'someValue';
uso dePHP
la clase estándar y$obj = (object) ['foo'=>'bar', 'baz'=>'biz'];
convertir una matriz (usando el tipo de conversión explícito) a un objeto (stdClass), pero con respecto a{}
esto, podría implementarse en el futuro, pero no estoy seguro: --)A partir de 2019, han pasado 7 años desde que
[]
se agregó la sintaxis. Eso es lo suficientemente largo como para caer,array()
excepto en los viejos programas heredados, en mi opinión.fuente
Si está utilizando la versión 5.3 o anterior, no puede usarla
[]
como una matriz, así como una matriz asociativa. Si está utilizando la versión 5.4 o posterior de PHP, puede usararray()
o[]
para crear una matriz, una matriz asociativa o incluso una matriz multidimensional.fuente
Y con respecto a la
<?= ?>
parte de la pregunta: en gran medida no está mal visto, al menos no en 2019.<?php
y<?=
etiquetas.fuente
Usando php 7.2, para mí parece más bien que [Soy una matriz] {Soy una matriz parece funcionar}. La diferencia es entre
{}
y[]
. Mi códigofuente