Ontem eu estava escrevendo um código num arquivo blade.php no Laravel, e tentei escrever $vetor->Amaral e eu recebi a mensagem de erro. Então, mudei para $vetor['Amaral'] e também recebi mensagem de erro.
Para saber o que eu estava fazendo de errado, eu usei o comando dd($vetor); e o Laravel exibiu um enorme painel cheio de informação chamado Collections.
O PHP, até eu onde eu sei, não tem esse recurso chamado Collections. O máximo que ele tem é um json, e montei esse código para saber a diferença entre um vetor e um objeto:
<?php
$vetor=[0=>["Amaral"=>"Ellen"]];
var_dump($vetor);// array 0=> array 'Amaral' => string 'Ellen'
$subvetor=$vetor[0];
echo $subvetor['Amaral'];// Ellen
$json=json_decode(json_encode($vetor));
var_dump($json);// array 0=> object(stdClass) public 'Amaral' => string 'Ellen'
$subjson=$json[0];
echo $subjson->Amaral;// Ellen
Através desse código, é fácil perceber que não dá para obter o valor da chave Amaral com o comando $vetor['Amaral'] ou $vetor->Amaral, isso porque o Amaral não é a chave do $vetor. O Amaral é a chave de um outro vetor que está dentro de outro vetor. E só dá para usar a gramática $chave->valor se você estiver trabalhando com um objeto e não com um vetor. Para saber quem é vetor e quem é objeto, só o comando var_dump é capaz de mostrar a diferença, ele diz em que parte o objeto é um vetor (array) ou objeto.
Estudar Laravel é muito bom. Eu ainda não sei o que é um "framework", mas a cada dia aprendo a gostar cada vez mais do PHP.
Pergunta
Frank K Hosaka
Ontem eu estava escrevendo um código num arquivo blade.php no Laravel, e tentei escrever $vetor->Amaral e eu recebi a mensagem de erro. Então, mudei para $vetor['Amaral'] e também recebi mensagem de erro.
Para saber o que eu estava fazendo de errado, eu usei o comando dd($vetor); e o Laravel exibiu um enorme painel cheio de informação chamado Collections.
O PHP, até eu onde eu sei, não tem esse recurso chamado Collections. O máximo que ele tem é um json, e montei esse código para saber a diferença entre um vetor e um objeto:
Através desse código, é fácil perceber que não dá para obter o valor da chave Amaral com o comando $vetor['Amaral'] ou $vetor->Amaral, isso porque o Amaral não é a chave do $vetor. O Amaral é a chave de um outro vetor que está dentro de outro vetor. E só dá para usar a gramática $chave->valor se você estiver trabalhando com um objeto e não com um vetor. Para saber quem é vetor e quem é objeto, só o comando var_dump é capaz de mostrar a diferença, ele diz em que parte o objeto é um vetor (array) ou objeto.
Estudar Laravel é muito bom. Eu ainda não sei o que é um "framework", mas a cada dia aprendo a gostar cada vez mais do PHP.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.