Estou escrevendo um aplicativo PHP e quero garantir que ele funcione sem erros.
O código original:
<?php
$data = array('name' => 'test',
'id' => 'theID');
echo form_input($data);
?>
O seguinte funcionaria sem erros ou não é recomendado por algum motivo?
<?= form_input(['name' => 'test', 'id' => 'theID']); ?>
Existe alguma diferença?
Eu olhei novamente os dados array()
e o método de matriz curta com colchetes []
no PHP.net, mas não tenho certeza.
E também, a tag php curta é <?= ?>
boa para ecoar? Existe algum problema de versão? (fornecido está ativado no php.ini)
php
arrays
syntax
square-bracket
Mr.Web
fonte
fonte
Respostas:
A seguir,
[]
há suporte no PHP> = 5.4:Esta é apenas uma sintaxe curta e no PHP <5.4 não funcionará .
fonte
$data = new stdClass();$data->someProp = 'someValue';
usandoPHP
classe padrão e$obj = (object) ['foo'=>'bar', 'baz'=>'biz'];
converter um array (usando fundição tipo explícito) a um objeto (stdClass), mas em relação a{}
, poderia ser implementado no futuro, mas não tenho certeza tho :-)A partir de 2019, faz 7 anos que a
[]
sintaxe foi adicionada. Isso é tempo suficiente para cair,array()
exceto em programas antigos herdados, na minha opinião.fonte
Se você estiver usando a versão 5.3 ou anterior, não poderá usar
[]
como matriz nem como associativo. Se você estiver usando a versão 5.4 ou posterior do PHP, poderá usararray()
ou[]
para criar uma matriz, matriz associativa ou mesmo matriz multidimensional.fonte
E quanto à
<?= ?>
parte da pergunta: que em grande parte é não desaprovada, pelo menos não em 2019.<?php
e<?=
tags.fonte
Usando o php 7.2, para mim parece que sim [eu sou uma matriz] {eu sou uma matriz parece funcionar}. A diferença está entre
{}
e[]
. Meu códigofonte