Ir para conteúdo
Fórum Script Brasil
  • 0

É possível criar objetos literais no php?


iNosuKe 么

Pergunta

A resposta para essa pergunta é: SIM

O conceito de object literal (objeto literal) é muito famoso no JS e consiste em criar um objeto que possui propriedades e, claro, valores associados a essas propriedades. No exemplo a seguir, poderemos ver como esse recurso funciona no JS:

const programador = {
   nome: "Fábio Akita",
   linguagem: "Ruby"
};

Agora posso consultar, alterar ou até mesmo executar propriedades e métodos desse meu objeto.

Exemplificando a utilização do meu objeto literal:

console.log(`Olá, ${programador.nome}`); # saída: Olá, Fábio Akita

Esse recurso é amplamente utilizado no mundo JS. Assista uma instrução switch ser substituída por um object literal:

let day;

switch (new Date().getDay()) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
    day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
    break;
  default:
    throw new Error("Hey! We have only 7 days in the week");
}

console.log(`What day of the week is today? ${day}`);

Substituindo por um object literal

const dayOfTheWeek = {
  0: "Sunday",
  1: "Monday",
  2: "Tuesday",
  3: "Wednesday",
  4: "Thursday",
  5: "Friday",
  6: "Saturday",
};

console.log(
  `What day of the week is today? ${dayOfTheWeek[new Date().getDay()]}`
);

Legal, né!? Mas daí você me pergunta, como posso replicar isso no php? Bom, o php não possui o recurso de object literal, mas calma, pois podemos alçar o mesmo resultado de duas maneiras:

1° por meio dos arrays associativos.

2° por meio da estrutura condicional match.

1° maneira:

$dayOfTheWeek = [
  0 => "Sunday",
  1 => "Monday",
  2 => "Tuesday",
  3 => "Wednesday",
  4 => "Thursday",
  5 => "Friday",
  6 => "Saturday",
];

$today = date('w'); // Obtém o dia da semana atual (0 para domingo, 1 para segunda, etc.)
echo "What day of the week is today? " . $dayOfTheWeek[$today];

2° maneira:

$today = date('w'); // Obtém o dia da semana atual (0 para domingo, 1 para segunda, etc.)
$todayInt = $today + 0; // no caso do match precisamos informar um int, para que a associação seja feita corretamente

$dayOfTheWeek = match($todayInt) {
  0 => "Sunday",
  1 => "Monday",
  2 => "Tuesday",
  3 => "Wednesday",
  4 => "Thursday",
  5 => "Friday",
  6 => "Saturday",
};

echo "What day of the week is today? " . $dayOfTheWeek;

Bem, esse foi o tutorial, tmjt rapaziada!

Editado por iNosuKe 么
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 1

Eu não conhecia o objeto literal no JavaScript, testei e funcionou, menos na hora de interpolar os textos.

Hoje eu finalmente descobri como funciona a interpolação. A interpolação no JavaScript só funciona no meu notebook se eu usar aspas craseadas, e a interpolação no PHP só funciona se eu usar aspas duplas, assim:

<script>
    programador = {"nome": "Fábio Akita","linguagem": "Ruby"}
    alert(`Olá, ${programador.nome}`)
</script>
<?php
$programador=json_decode('{"nome":"Fábio Akita","linguagem":"Ruby"}');
echo "Olá, $programador->nome";

Para calcular o dia da semana em português, a minha sugestão é:

<?php
$week=['Mon','Thu','Wed','Tue','Fri','Sat','Sun'];
$semana=['segunda','terça','quarta','quinta','sexta','sábado','domingo'];
echo "hoje é " . $semana[array_search(date("D"),$week)];

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0

Muito interessante o seu tutorial sobre o conceito de object literal em JavaScript e como replicá-lo em PHP usando arrays associativos ou a estrutura condicional match. É uma ótima maneira de mostrar como os conceitos de uma linguagem podem ser adaptados para outra de forma eficiente.  Compartilhe seu conhecimento em jogar pachinko Tenho certeza de que muitos apreciarão sua abertura e compartilharão algo com você também. Parabéns pela explicação detalhada e pela demonstração prática das soluções em PHP. Certamente será útil para quem está aprendendo ou trabalhando com ambas as linguagens.

Editado por BabylonJa101
Link para o comentário
Compartilhar em outros sites

  • 0

Os objetos literais no PHP são úteis para representar dados estruturados de forma simples e acessível. Eles também podem ser facilmente passados como parâmetros de função ou retornados por funções. Você pode saber mais sobre esse assunto em crazy time. É importante lembrar que, apesar da semelhança com as matrizes associativas, os objetos literais no PHP não são iguais aos objetos de classe personalizados, pois não têm métodos ou herança.

Editado por LunarSand33
Link para o comentário
Compartilhar em outros sites

  • 0

Durante muito tempo eu usei o json_decode(json_encode($array)) para obter um objeto literal no PHP.

Nessa semana, eu encontrei uma outra forma de obter um objeto no PHP:

<?php
$programador=(object)['nome'=>'Fabio Akita'];
echo "Olá, $programador->nome"; // Olá, Fábio Akita

echo "<p>";

$diaDaSemana=(object)['Sun'=>'domingo','Mon'=>'segunda-feira','Tue'=>'terça-feira',
 'Wed'=>'quarta-feira', 'Thu'=>'quinta-feira', 'Fri'=>'sexta-feira', 'Sat'=>'sábado'];
$day=date("D");
echo "Hoje é " . $diaDaSemana->$day ." (".date('d/m/Y'). ")"; // Hoje é domingo (10/03/2024)

 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...