Recentemente nesse vídeo eu recebi alguns comentários dizendo que supostamente isso seria um "Ponteiro" e que ponteiros são úteis. Mas não, isso não é um ponteiro, é um recurso do PHP chamado de "Variáveis Variáveis", e não tem absolutamente nada a ver com ponteiros do C. Até por que linguagens como o PHP tem memória completamente gerenciada por um "garbage collector", então PHP não precisa de recursos como ponteiros. (Por mais que lembre um pouco ponteiros do C, na prática funciona de uma FORMA bem diferente) Link da documentação OFICIAL do PHP que fala que isso não são ponteiros: www.php.net/manual/pt_BR/language.variables.variable.php E sobre alguns nervosinhos quem vem me xingar. Não o intuito desse vídeo não é desmerecer o PHP, PHP é uma linguagem MUITO competente, e foi minha linguagem principal por ANOS. A Ideia desse vídeo é só mostrar de uma forma descontraída um recurso MUITO curioso da linguagem. Paz!
Ter garbage collector não significa que não se faz uso de ponteiros. Em linguagens interpretadas, toda (praticamente) declaração é uma nova instância. Ou seja, sim, tudo ali é usado como ponteiro. seja em PHP, em JS em Ruby e em Python... etc.
Qualquer linguagem da para fazer gambiarras, eu já fiz muito em java que é totalmente diferente do PHP, agora sé a pessoa desenvolver com orientação a objetos e com todos os padrões de desenvolvimento correto não a por que de colocar gambiarras.
É algo não-intuitivo, mas pode ser útil em alguns casos gambiarrentos. Felizmente, é uma feature que quem não quiser usar, não precisa e tá tudo bem, diferente de outras linguagens que se você errar o espaço, te dá duas horas de trabalho extra.
Até hoje não entendo essa "evangelização" de linguagens que o pessoal faz, já usei várias linguagens e você a utiliza aquele se encaixa melhor com o seu objetivo ou projeto. Como por exemplo, games, IA, aplicações desktop, web etc... Cada linguagens tem o seu propósito, além de pós e contras com qualquer outra...
Tipo quando ? parece que fica ambíguo, eu prefiro colocar o tipo do valor da variável no php quando estou trabalhando com orientação a objetos, eu sempre uso orientação a objetos.
@@tiagomatos6120eu uso pra fazer controlador autônomo, envio por parâmetro a classe e o método que quero executar e esse recurso né permite fazer isso funcionar
@@thomasthemazzerrunner3615ponteiro aponta o espaço de memória, e nao uma variavel... ex int *x, nao fala sobre x, fala sobre o espaço de memoria q x ficara, o ponteiro basicamente armazena o espaco de memoria
E se tu não sabe uma variável é um ESPAÇO NA MEMÓRIA RAM com um identificador, um ponteiro é uma variável especial que aponta pra um endereço de memória dessa variável, por exemplo uma lista encadeada funciona com diversos objetos (Variáveis espalhadas de forma não sequencial na memória) o que as conectam são os ponteiros que ligam (Apontam pro próximo elemento criando uma lógica de lista encadeada) ENTENDEU amigo?@@UrubuDoPixXXT
Informação muito interessante. isso para um sistema normal não é muito utilizado mas pra implementar códigos mais flexíveis e dinâmicos é muito útil. Posta mais curiosidades que é interessante.
@@johnsmera7481eu acredito que é pq duas variáveis estão usando o mesmo valor, portanto, se uma dessas variáveis não tiver a proteção necessária, será um tiro no pé
@@actiong1393 na verdade nao dentro de um única chamada vc realiza 2 busca na memoria agilizando o envio de dados deixando ate mais rápido, pois o dado ja estava na memoria , e se vc consegue recuperar em uma chamada 2 dados e ótimo para otimizar.
A variável armazena, mas não deleta o antigo armazenamento... então ela consegue acessar... eu achei muito legal, tipo como outros comentários dá pra fazer "gambiarramento" 😅
Caraca!!! Eu tava reconhecendo a voz e tinha certeza de que conhecia de algum curso, aí vi o nome!!! Aprendi c# com vc, pelo teu curso da udemy!!! Mto obrigado por me ensinar!!!
Outra propriedade que acabo usando bastante é a declaração de classes por meio do valor das variáveis, por exemplo: tenho duas integraçoes de pagamento, mas apenas uma fica ativa por vez, ao chamar a funcao que ira consumir o metodo da classe, retorno o nome da classe ativa e declaro com a variavel que contem o nome da classe: $nomeClasse()
@@silas190 Mano, então, eu começaria pela lógica de programação, que é a mesma, independente da linguagem. Entender como o computador funciona. Daí sim você pesquisaria mais sobre áreas do desenvolvimento, já tendo uma noção. E, se quiser trilhar o caminho Web, sim, PHP é uma boa ideia, ele tem muitos Frameworks robustos para produtividade, um exemplo é o Laravel, trabalhei 1 ano com ele. E tem bastante vaga pra Dev PHP.
@@lakenomite eu sou dev pleno. Sei criar um sistema em back e front completo em js. Vou te dá um dica também: "var" está ultrapassado, agora usamos "const" e "let". Pesquise "const, let e var". Não usamos mais o "var"
@@lakenomite ah li direito aqui, você não intendeu o vídeo do cara. Você simplesmente tá atribuindo uma variável a outra, mas no vídeo, o php transforma uma string em variável. Mesmo assim, estude const e let
$variavel1 = "valor1"; $variavel2="variavel1"; Se você chamar $$variavel2, o php vai buscar uma variável com o nome do valor desta variável. Nesse caso, vai buscar a $variavel1 e retornar o seu valor, que é "valor1". Faz sentido?
@@slashplayproah que bom , eu entendi certo kkkkkk. Pra mim isso pode até fazer sentido existir. Mas só vai fazer mais sentido quando tiver desenvolvendo o código.
@@slashplaypro Toda linguagem da para fazer gambiarra, eu ja fiz em Java que é uma linguagem totalmente diferente em PHP, agora sé você usar orientação a objetos não tem o por que usar isso que ele mostrou no vídeo.
Isso é nativo da linguagem $var é uma variável e $$var é uma "variável variável" cujo nome é o valor de $var. Usado para criar variáveis dinamicamente. Um exemplo de uso, transformar valores de parâmetros GET em variáveis
Este é o conceito de variável dinâmica no PHP, este tipo de variável pode ser usada em parâmetros dinâmicos por exemplo, mais comum quando o dado é recebido de uma fonte externa como uma API
Pra variáveis dinâmicas isso faz todo sentido e pode deixar até o código mais limpo. No javascript da pra fazer quaseee a mesma coisa, mas de um jeito diferente. Suponhamos que você tenha um objeto abaixo const stocksPrices = { 'TAEE11': 12.00 'XPLG11': 100.00 } são galores de ações, você pode obter o valor usando uma chave dinâmica tipo const stock = 'TAEE11' stocksPrices[stock] // => 12.00 esse informação poderia estar vindo de uma api por exemplo, e o no php segue a mesma lógica 😁 toda linguagem tem isso
É perfeitamente compreensível e aceitável. Se em um cenário eu quero chamar uma determinada variável com base em um valor, ao invés de fazer os famosos if/else ou até o switch/case, esse recurso pode muito bem ser utilizado para invocar dinamicamente a variável desejada passando seu nome através de um parâmetro. Isso também funciona com propriedades de objetos: $obj->{$prop}. O que me incomoda no PHP é justamente precisar usar um cifrão para declarar variáveis, isso deixa o código feio. Mas aí já é outra história.
CARA! cê tem que entender que muitos programadores web começaram pelo PHP, o primeiro DIM, DIM foi com PHP. Então tem muitos caras que tem realmente um carinho pela linguagem como não se vê em outras.
O povo critica o PHP como se linguagens C, C++, Erlang, Javascript, entre outras fossem uma maravilha em questão de sintaxe, simplicidade, objetividade, elegância e legibilidade.
isso se chama variável variável eu uso muito para geração de código é um recurso ótimo não é palhaçada lembre que php foi feito para processamento de texto e isso é algo bastante útil para isso
Eu programo em ABAP da SAP esse recurso no ABAP se chama meta programação e é um recurso avançadíssimo da linguagem, em C e C++ temos o mesmo comportamento com Ponteiros e exige muito esforço de um iniciante pra poder entender o contexto o PHP sendo uma linguagem interpretada tem o contexto de reflexão , meta programação e ponteiros nativamente e ouso falar que exigem linguagens de propósito geral que não entregam isso, infelizmente o PHP não tem acesso ao hardware porém com APIs escritas e outras linguagens que entregam acesso ao hardware a única falha da linguagem é vencida.
isso é só uma gambiarra de arquitetura da linguagem, linguagens mais modernas tem formas mais elegantes de referenciar um valor a partir de uma string, tipo um dictionary, na verdade até o php ja tem a muito tempo algo parecido, essa "feature" é só um resquício de uma época que legibilidade não era tão importante
@@profano9201 Com essa gambiarra dá pra fazer vários hackings que eu nunca vi em outras linguagens. Como você disse, é só gambiarra, mas se utilizar com cuidado, dá para pra fazer um bom trabalho e ainda economizar tempo. O core do wordpress, por exemplo, usa e abusa dessa "feature".
@@newtao da pra fazer a msm coisa com array a diferença é q o codigo fica legível e limpo, esse "hack" não possibilita fazer nada que ja não era possível, é só uma implementação antiga de uma lógica últil que envelheceu mal
@@profano9201 Eu ainda acho que dá para fazer bastante coisa. Pode até ser considerado ultrapassado, mas para aplicações não tão grandes, podemos utilizar para criar interfaces e chamar métodos dinamicamente. Sem contar que evita deixar o projeto complexo, caso não seja necessário. Eu, por exemplo, em uma aplicação pequena, prefiro usar isso: $class = new Example; $method_name = "method_name"; $class->$method_name(); Do que encher meu código de ifs ou até mesmo usar um pattern como o Strategy
@@profano9201 Pensando bem, dê fato dá pra fazer o mesmo código usando os arrays, sem if e sem nenhuma complexidade adicional. $class = new Example; $methods = [ "method_name" => [$class, "method_name"], ]; $method_name = "method_name"; call_user_func($methods[$method_name]); Vou tentar substituir meus hábitos nesse caso.
Na verdade isso são ponteiros sim. O intepretador do PHP é escrito em C++, e toda e qualquer variável declarada no PHP é basicamente um pointer. No caso do `&&` você ta pegando uma referência do valor do pointer ( em linguagem C++ ). No PHP pode se chamar `variáveis variáveis`, mas tem sim ligação com pointers do C++.
Php tem 30 anos, naquela época a programação era usada de forma estruturada, sem POO, talvez esse recurso lá nos primórdios era usado para meta-programação ou na criação de adaptadores, exemplo: se tivessem várias variáveis com nome de cores, e uma outra variável chamada “ação” que fosse alimentada através de um input. Automaticamente rodaria o resultado da cor certa com pouquíssimas linhas de código. Hoje temos padrões pra isso, já naquela época não era como hoje. Mas tá aí disponível, com grandes poderes, grandes responsabilidades 😂😂
para quem nao entendeu e facil com uma chamada simples de escrita o echo vc consegue apontar 2 variáveis, economizando envios de busca ou ate msm de echo , ja usei muito e ajuda , basta lembra q e na ordem de declaração de variável. não e gambiara e nada disso, e só um apontamento de variável fácil e simples, se vc declara variável com $ vc chama ela com $, na ordem da declaração
@@tiagomatos6120orientação a objetos kkkkkkkk voce pode programar em qualquer paradigma que preste e nao vai precisar disso. Em paradigma funcional, procedural... até programação competitiva não usam esse tipo de gambiarra.
@@PamellaCardoso-pp5tr Acho que você não deve saber que tem como declarar a tipagem de uma váriavel no PHP e geralmente quando se usa orientação a objeto acabam sempre declarando, ainda mais quem já usou Java igual a eu, que praticamente Java é uma linguagem totalmente orientada a objetos, tenta entender o comentário antes de comentar...
@@PamellaCardoso-pp5tr Não é gambiarra, PHP é uma linguagem fracamente tipada, por isso acontece isso, e eu mesmo nunca usei algo do tipo, até por que causam erros futuros no sistema.
@@tiagomatos6120 E desse quando voce precisa de orientação a objetos pra declarar tipagem? Se você vai pra qualquer outro paradigma o mesmo acontece com ainda mais rigor! Toda a construção da programação funcional se da em cima da teoria de categorias e as relações entre os elementos na categoria dos tipos. Programação funcional faz cada parte do seu codigo se comunicar através da sincronia entre os tipos de retorno. E bem... digamos que o mercado finalmente entendeu o valor de delegar o manejo dos erros a estrutura monadica, devido ao quão grande vem sendo a demanda por implementação de tipos option/maybe. Orientação a objetos é bom, mas ela não é o santo graal da programação que precisa ser usada em tudo, Na real se você pesquisar sobre, vai ver muito mais artigos sobre como orientação a objetos seguindo padrões SOLID e etc mais causa danos do que benefícios (só demoraram demais a perceber isso) manter-se de mente aberta é sempre importante.
Achei intuitivo. É como uma função dentro de função na matemática. Se temos f(x)=x+1, o valor retornado será apenas x acrescido de 1. Se temos g(x)=2x, o valor retornado será o dobro de x. Mas se temos g(f(x)), será primeiro acrescido 1 a x e então multiplicado o resultado por 2, pois o f(x) se torna o x da função g(x).
@@gabrielavelino2980 Exato, isso é uma feature que deve ser evitada ao máximo, os casos de uso dela são tão específicos que provavelmente o programador nunca vai usar
Tem vários casos de uso, quem acredita que não é programador de framework ou wordpress. Qualquer programador que já tenha trabalhado com PHP em alto nível sabe que tem várias probabilidades para o uso e não apenas com POG
isso existe em outras linguagens, inclusive no javascript, la se chama literalização, tem um nome parecido em ingles que não lembro, mas uso sempre no js esse truque pra tornar algumas coisas mais dinamicas
Parece o ponteiro do C, a função é bem parecida e a utilidade dele é pegar o endereço de memória ou valor que está naquele endereço e consegue puxar ou alterar
Eu fiquei impressionado quando descobri que eu podia guardar uma string com o nome de uma classe e criar objetos a partir dessa variável, também funciona com métodos. E eu criticando o JavaScript
Vale uma observação que isso não é uma gambiarra, pelo contrário, é muito útil quabdo estamos trabalhando com funções extremamente abstradas e necessita de uma listagem sem ser um vetor.
Uma vez fiquei tão nervoso por causa disso, estava mexendo em um código de um plugin do WordPress e tinha isso, eu nem fazia ideia q isso existia e fiquei Índia todo quebrando a cabeça para tentar entender o por que havia variáveis com dois sinais de dólar. PHP, eu te odeio e te amo ao mesmo tempo.
Recentemente nesse vídeo eu recebi alguns comentários dizendo que supostamente isso seria um "Ponteiro" e que ponteiros são úteis.
Mas não, isso não é um ponteiro, é um recurso do PHP chamado de "Variáveis Variáveis", e não tem absolutamente nada a ver com ponteiros do C.
Até por que linguagens como o PHP tem memória completamente gerenciada por um "garbage collector", então PHP não precisa de recursos como ponteiros. (Por mais que lembre um pouco ponteiros do C, na prática funciona de uma FORMA bem diferente)
Link da documentação OFICIAL do PHP que fala que isso não são ponteiros: www.php.net/manual/pt_BR/language.variables.variable.php
E sobre alguns nervosinhos quem vem me xingar.
Não o intuito desse vídeo não é desmerecer o PHP, PHP é uma linguagem MUITO competente, e foi minha linguagem principal por ANOS. A Ideia desse vídeo é só mostrar de uma forma descontraída um recurso MUITO curioso da linguagem. Paz!
Tecnicamente não é, mas que parece parece :D:D:D
@Victor Lima - Guia do Programador kkkkk povo é muito estressado, esses dias atrás reclamando por causa do Cobol kkkk
Ter garbage collector não significa que não se faz uso de ponteiros. Em linguagens interpretadas, toda (praticamente) declaração é uma nova instância. Ou seja, sim, tudo ali é usado como ponteiro. seja em PHP, em JS em Ruby e em Python... etc.
@@zanzaraloggan3713 Tem q desenhar pra tu entender?
Obrigado, eu já tava me coçando com os comentários comparando isso a ponteiro kkkk
Programador:
- Quais gambiarras você consegue fazer?
PHP:
- Sim
Mano kakakaka
Qualquer linguagem da para fazer gambiarras, eu já fiz muito em java que é totalmente diferente do PHP, agora sé a pessoa desenvolver com orientação a objetos e com todos os padrões de desenvolvimento correto não a por que de colocar gambiarras.
@@tiagomatos6120 mas vamos concordar que PHP da pra fazer coisas extremamente megalomaniacas
$im
Desde quando variáveis variantes são gambiarras?
POG: Programa Orientada a Gambiarra
Pogchamp?
@@postafezespoggers
Oh mano não fala isso.. tô começando a curtir a linguagem 😂
@@derick_isoo PHP na mão do brasileiro é uma arma poderosa
POB: Programação Orientada a Bugs
É algo não-intuitivo, mas pode ser útil em alguns casos gambiarrentos. Felizmente, é uma feature que quem não quiser usar, não precisa e tá tudo bem, diferente de outras linguagens que se você errar o espaço, te dá duas horas de trabalho extra.
Exatamente J.S
ainda bem que eu uso Python 🤭❤
@@coelho9492 sai dessa vida de crackudo, venha pro C e seja um usuário refinado de coca 🗿🍷
@@twqzjsidIsndusiakdixisqjeksixi até iria, se meu sonho não fosse criar uma IA. KAKAKAKA
Até hoje não entendo essa "evangelização" de linguagens que o pessoal faz, já usei várias linguagens e você a utiliza aquele se encaixa melhor com o seu objetivo ou projeto. Como por exemplo, games, IA, aplicações desktop, web etc... Cada linguagens tem o seu propósito, além de pós e contras com qualquer outra...
Amigo, esse recurso é tremendamente útil se eu tiver uma matriz de valores e quiser instanciar uma lista de variáveis dinamicamente
Linux tomando chimarrão kkkkkkkkkkk
Kkkkkkkkk tendi nada mano, explica
@@luizgustavorocha5583 O mascote do linux que é um pinguim kkkkk
@@luizgustavorocha5583 KKKKKKKKKKK
Pode explicar para nós leigos?
já trabalhei 5 anos como programador PHP e esse recurso já me foi útil algumas vezes
Tipo quando ? parece que fica ambíguo, eu prefiro colocar o tipo do valor da variável no php quando estou trabalhando com orientação a objetos, eu sempre uso orientação a objetos.
@@tiagomatos6120você pode implementar o padrão strategy usando isso. Fica muito simples e em algumas situações é uma solução perfeita.
É uma recursividade interessante. Pode poupar algumas linhas de código.
@@tiagomatos6120 Muito pelo contrario. Vc pode retornar um nó de algum algoritmo e gerar um resultado diferente.
@@tiagomatos6120eu uso pra fazer controlador autônomo, envio por parâmetro a classe e o método que quero executar e esse recurso né permite fazer isso funcionar
É como dizem né, as engraçadas são as melhores...
"Gosta de sofrer? Torce pro Vasco?" Mordecai
Quando você cria um código com isso é lindo, um mês depois você percebe o que fez.
Um mês depois você só vê o cliente na sua porta querendo "conversar".
Isso é muito útil, muito utilizado dentro de pacotes, torna a linguagem super flexível.
totalmente intuitivo se vc ja viu C e ponteiros
Não, não me fale de ponteiros.... Eles me assombram
Ponteiro é uma coisa simples é uma variável referenciando outra
@@thomasthemazzerrunner3615ponteiro aponta o espaço de memória, e nao uma variavel... ex int *x, nao fala sobre x, fala sobre o espaço de memoria q x ficara, o ponteiro basicamente armazena o espaco de memoria
E se tu não sabe uma variável é um ESPAÇO NA MEMÓRIA RAM com um identificador, um ponteiro é uma variável especial que aponta pra um endereço de memória dessa variável, por exemplo uma lista encadeada funciona com diversos objetos (Variáveis espalhadas de forma não sequencial na memória) o que as conectam são os ponteiros que ligam (Apontam pro próximo elemento criando uma lógica de lista encadeada) ENTENDEU amigo?@@UrubuDoPixXXT
@@thomasthemazzerrunner3615 mas o ponteiro aponta para o endereço, não para a variável em si
Pra quem estudou ponteiro em C é muito intuitivo isso
Isso não tem nada a ver com ponteiros. Inclusive dá pra referenciar a memória em PHP com &.
e eu que fiz um shell usando c? fica muito mais intuitivo
Mas faz muito sentido
É como se $variavel fosse substituída por um outro texto ou seja $($variavel)
Concordo
ou como se fosse a dereference de um ponteiro
@@ewertonls_ deferente?
Sim pior q faz total sentido, e sinto falta desse tipo de coisa em outras linguagens
@@cursordgod2935 não, não faz sentido 😭😭😭
Uma string sendo interpretada como variável/indicador.
Informação muito interessante. isso para um sistema normal não é muito utilizado mas pra implementar códigos mais flexíveis e dinâmicos é muito útil. Posta mais curiosidades que é interessante.
Nunca programei em PHP mas isso é muito útil.
Tudo depende de como usar, em react cai como uma luva no front
acho que isso pode causar brechas de segurança na real
@@felipemfrudeli pq?
@@johnsmera7481eu acredito que é pq duas variáveis estão usando o mesmo valor, portanto, se uma dessas variáveis não tiver a proteção necessária, será um tiro no pé
@@actiong1393 na verdade nao dentro de um única chamada vc realiza 2 busca na memoria agilizando o envio de dados deixando ate mais rápido, pois o dado ja estava na memoria , e se vc consegue recuperar em uma chamada 2 dados e ótimo para otimizar.
Gostei do video, muito legal ver videos engracados sobre programacao, continua assim, irmao!
Esse é o conceito de variável variante, até hj eu não sei onde isso seria aplicado, só saiba que existe e tá lá!
A variável armazena, mas não deleta o antigo armazenamento... então ela consegue acessar... eu achei muito legal, tipo como outros comentários dá pra fazer "gambiarramento" 😅
Caraca!!! Eu tava reconhecendo a voz e tinha certeza de que conhecia de algum curso, aí vi o nome!!! Aprendi c# com vc, pelo teu curso da udemy!!! Mto obrigado por me ensinar!!!
Outra propriedade que acabo usando bastante é a declaração de classes por meio do valor das variáveis, por exemplo: tenho duas integraçoes de pagamento, mas apenas uma fica ativa por vez, ao chamar a funcao que ira consumir o metodo da classe, retorno o nome da classe ativa e declaro com a variavel que contem o nome da classe: $nomeClasse()
Esse recurso dessa linguagem é uma sacada muito boa, e da pra fazer umas ferramentas bem legais com esse recurso
Acho isso bem útil, desenvolvo em php há alguns anos e já precisei chamar nomes de funções dinamicamente, assim como variáveis 🤙
verdade mano, acho o caso de uso dessa feature muito “específico”.
Você que já tem experiência, não sei programar ainda, e quero começar com php, acha uma boa ideia?
Quero ser um desenvolvedor web
@@silas190 Mano, então, eu começaria pela lógica de programação, que é a mesma, independente da linguagem. Entender como o computador funciona. Daí sim você pesquisaria mais sobre áreas do desenvolvimento, já tendo uma noção.
E, se quiser trilhar o caminho Web, sim, PHP é uma boa ideia, ele tem muitos Frameworks robustos para produtividade, um exemplo é o Laravel, trabalhei 1 ano com ele.
E tem bastante vaga pra Dev PHP.
É útil principalmente pra puxar um valor em um stdClass q possuí índices numéricos, n é possível fazer $var->6, então $$val = $val = 6; $var->$$val
Bom, isso foi gambiarra, pois existe uma função chamada call_user_func que serve para esse propósito.
Gostei da dica, não sei porque vou usar e nem quando vou usar. Mais gostei, vou usar.
Isso se chama "variável dinâmica", e está disponível em outras linguagens como javascript por exemplo.
Aaahn… não tem isso em JS não. Da pra ler propriedades de objetos dinamicamente, mas é outra coisa bem diferente
Da para usar no Lua mais somente se a variável for global
Usando através da tabela G
for k, v in next, {"A","B","C","D"} do
_G[v] = 0
end
Eu tô surpreso mesmo é o javascript tbm não ter isso kkkkk
mas no js tem esse sistema que se chama "var" ou "variable"
@@lakenomite tá falando de variável? Pra mim fazer isso no JS eu tenho que usar eval()
@@SouAndersonDavid pra eu fazer isso no js eu uso var nome = "algo" ai depois uso var nome2 = nome e depois uso console.log(nome2)
@@lakenomite eu sou dev pleno. Sei criar um sistema em back e front completo em js.
Vou te dá um dica também: "var" está ultrapassado, agora usamos "const" e "let".
Pesquise "const, let e var". Não usamos mais o "var"
@@lakenomite ah li direito aqui, você não intendeu o vídeo do cara.
Você simplesmente tá atribuindo uma variável a outra, mas no vídeo, o php transforma uma string em variável. Mesmo assim, estude const e let
Vi várias vezes esse vídeo e ainda não entendi! Kkkkk
$variavel1 = "valor1";
$variavel2="variavel1";
Se você chamar $$variavel2, o php vai buscar uma variável com o nome do valor desta variável. Nesse caso, vai buscar a $variavel1 e retornar o seu valor, que é "valor1". Faz sentido?
@@slashplayproah que bom , eu entendi certo kkkkkk. Pra mim isso pode até fazer sentido existir. Mas só vai fazer mais sentido quando tiver desenvolvendo o código.
@@floquinho_videos Top mano. O PHP é uma linguagem top, mas tem muita gambiarra. Acho que eu não usaria isso, minha intuição é um pouco contra.
@@slashplaypro Toda linguagem da para fazer gambiarra, eu ja fiz em Java que é uma linguagem totalmente diferente em PHP, agora sé você usar orientação a objetos não tem o por que usar isso que ele mostrou no vídeo.
@@tiagomatos6120Consegue dar um exemplo dessa aplicação mas com POO mano?
que delícia de linguagem, dar pra fazer mágica com essa feature
Cara essa sacada do php é maravilhosa.
Isso é nativo da linguagem
$var é uma variável e $$var é uma "variável variável" cujo nome é o valor de $var.
Usado para criar variáveis dinamicamente.
Um exemplo de uso, transformar valores de parâmetros GET em variáveis
compreensível mano, tenha um bom dia
Isso chama MACRO SUBSTITUIÇÃO é muito útil.
Este é o conceito de variável dinâmica no PHP, este tipo de variável pode ser usada em parâmetros dinâmicos por exemplo, mais comum quando o dado é recebido de uma fonte externa como uma API
Excelente video!!!
Não sabia disso, eu já precisei fazer isso em Javscript, por incrível que parece pode ser algo útil
O nome disso é variáveis variáveis. Muito útil para extinguir os Ifs em factory method.
cara, eu curto php dms
é muito simples e de facil entendimento
Adorei o loop do final hahaa E UM DOS MOTIDOS QUE... PHP
Pra variáveis dinâmicas isso faz todo sentido e pode deixar até o código mais limpo. No javascript da pra fazer quaseee a mesma coisa, mas de um jeito diferente. Suponhamos que você tenha um objeto abaixo
const stocksPrices = {
'TAEE11': 12.00
'XPLG11': 100.00
}
são galores de ações, você pode obter o valor usando uma chave dinâmica tipo
const stock = 'TAEE11'
stocksPrices[stock] // => 12.00
esse informação poderia estar vindo de uma api por exemplo, e o no php segue a mesma lógica 😁 toda linguagem tem isso
Pra mim isto foi muito útil e descobri intuitivamente.
Isso é útil pra caramba
Podia ter essa referência em todas as linguagens. Eu sinto falta disso.
estranhamente só serve para string
ponteiro em c é mais ou menos essa pegada aí.
@@julioDinisdLima sim
Super intuitivo e lógico ela fazer isso. Ainda bem que faz =D
É perfeitamente compreensível e aceitável. Se em um cenário eu quero chamar uma determinada variável com base em um valor, ao invés de fazer os famosos if/else ou até o switch/case, esse recurso pode muito bem ser utilizado para invocar dinamicamente a variável desejada passando seu nome através de um parâmetro. Isso também funciona com propriedades de objetos: $obj->{$prop}.
O que me incomoda no PHP é justamente precisar usar um cifrão para declarar variáveis, isso deixa o código feio. Mas aí já é outra história.
Sim, é tipo um ponteiro(é chamado assim em outras linguagens).
Creio que a idéia deva ser a semelhante a ideia de trabalhar com ponteiros
CARA! cê tem que entender que muitos programadores web começaram pelo PHP, o primeiro DIM, DIM foi com PHP. Então tem muitos caras que tem realmente um carinho pela linguagem como não se vê em outras.
O que é DIM?
O povo critica o PHP como se linguagens C, C++, Erlang, Javascript, entre outras fossem uma maravilha em questão de sintaxe, simplicidade, objetividade, elegância e legibilidade.
C# e incrível 😊
@@Hikikomori389 eu conheço Python é fantástica, dizem que Ruby e Elixir também
@@Hikikomori389 C# herdou coisas feias de C e C++, por exemplo, os operadores || e &&
isso se chama variável variável eu uso muito para geração de código é um recurso ótimo não é palhaçada lembre que php foi feito para processamento de texto e isso é algo bastante útil para isso
Eu acho isso muito pratico, é quase uma meta variável
Isso se chama macro substituição. É muito antigo, a primeira vez que vi foi na década de 1980. É usada em linguagens interpretadas.
Trabalhei muito tempo com mumps, e lá era normal, inclusive chamar uma função que é valor de uma variável
Eu programo em ABAP da SAP esse recurso no ABAP se chama meta programação e é um recurso avançadíssimo da linguagem, em C e C++ temos o mesmo comportamento com Ponteiros e exige muito esforço de um iniciante pra poder entender o contexto o PHP sendo uma linguagem interpretada tem o contexto de reflexão , meta programação e ponteiros nativamente e ouso falar que exigem linguagens de propósito geral que não entregam isso, infelizmente o PHP não tem acesso ao hardware porém com APIs escritas e outras linguagens que entregam acesso ao hardware a única falha da linguagem é vencida.
Para mim isso faz mais sentido que as bizarrices do JavaScript
Eu amo essa feature, da pra fazer altas implementações.
isso é só uma gambiarra de arquitetura da linguagem, linguagens mais modernas tem formas mais elegantes de referenciar um valor a partir de uma string, tipo um dictionary, na verdade até o php ja tem a muito tempo algo parecido, essa "feature" é só um resquício de uma época que legibilidade não era tão importante
@@profano9201 Com essa gambiarra dá pra fazer vários hackings que eu nunca vi em outras linguagens.
Como você disse, é só gambiarra, mas se utilizar com cuidado, dá para pra fazer um bom trabalho e ainda economizar tempo.
O core do wordpress, por exemplo, usa e abusa dessa "feature".
@@newtao da pra fazer a msm coisa com array a diferença é q o codigo fica legível e limpo, esse "hack" não possibilita fazer nada que ja não era possível, é só uma implementação antiga de uma lógica últil que envelheceu mal
@@profano9201 Eu ainda acho que dá para fazer bastante coisa. Pode até ser considerado ultrapassado, mas para aplicações não tão grandes, podemos utilizar para criar interfaces e chamar métodos dinamicamente.
Sem contar que evita deixar o projeto complexo, caso não seja necessário.
Eu, por exemplo, em uma aplicação pequena, prefiro usar isso:
$class = new Example;
$method_name = "method_name";
$class->$method_name();
Do que encher meu código de ifs ou até mesmo usar um pattern como o Strategy
@@profano9201 Pensando bem, dê fato dá pra fazer o mesmo código usando os arrays, sem if e sem nenhuma complexidade adicional.
$class = new Example;
$methods = [
"method_name" => [$class, "method_name"],
];
$method_name = "method_name";
call_user_func($methods[$method_name]);
Vou tentar substituir meus hábitos nesse caso.
O humor de um programador
isso é muito útil em alguns casos, vai fazer isso em java pra ver o que é engraçado
Na verdade isso são ponteiros sim. O intepretador do PHP é escrito em C++, e toda e qualquer variável declarada no PHP é basicamente um pointer. No caso do `&&` você ta pegando uma referência do valor do pointer ( em linguagem C++ ). No PHP pode se chamar `variáveis variáveis`, mas tem sim ligação com pointers do C++.
Tá no documento oficial do PHP e tu ainda ta nisso kkkkkk
@@saitaminhark3211 num é kkkkk
Semana 367, eu acho que estou em um loop.
E isso te abre um horizonte de possibilidades
Php tem 30 anos, naquela época a programação era usada de forma estruturada, sem POO, talvez esse recurso lá nos primórdios era usado para meta-programação ou na criação de adaptadores, exemplo: se tivessem várias variáveis com nome de cores, e uma outra variável chamada “ação” que fosse alimentada através de um input. Automaticamente rodaria o resultado da cor certa com pouquíssimas linhas de código. Hoje temos padrões pra isso, já naquela época não era como hoje. Mas tá aí disponível, com grandes poderes, grandes responsabilidades 😂😂
PHP tem as traits que são bem legais tbm
e perigosas.
@@alien4006não acho não. São bem úteis.
para quem nao entendeu e facil com uma chamada simples de escrita o echo vc consegue apontar 2 variáveis, economizando envios de busca ou ate msm de echo , ja usei muito e ajuda , basta lembra q e na ordem de declaração de variável. não e gambiara e nada disso, e só um apontamento de variável fácil e simples, se vc declara variável com $ vc chama ela com $, na ordem da declaração
Porra isso deve ser muito util pra fazer metaprogramação, em python é um inferno.
Dificilmente vai precisar usar isso se você estiver usando orientação a objetos.
@@tiagomatos6120orientação a objetos kkkkkkkk voce pode programar em qualquer paradigma que preste e nao vai precisar disso.
Em paradigma funcional, procedural... até programação competitiva não usam esse tipo de gambiarra.
@@PamellaCardoso-pp5tr Acho que você não deve saber que tem como declarar a tipagem de uma váriavel no PHP e geralmente quando se usa orientação a objeto acabam sempre declarando, ainda mais quem já usou Java igual a eu, que praticamente Java é uma linguagem totalmente orientada a objetos, tenta entender o comentário antes de comentar...
@@PamellaCardoso-pp5tr Não é gambiarra, PHP é uma linguagem fracamente tipada, por isso acontece isso, e eu mesmo nunca usei algo do tipo, até por que causam erros futuros no sistema.
@@tiagomatos6120 E desse quando voce precisa de orientação a objetos pra declarar tipagem?
Se você vai pra qualquer outro paradigma o mesmo acontece com ainda mais rigor! Toda a construção da programação funcional se da em cima da teoria de categorias e as relações entre os elementos na categoria dos tipos. Programação funcional faz cada parte do seu codigo se comunicar através da sincronia entre os tipos de retorno.
E bem... digamos que o mercado finalmente entendeu o valor de delegar o manejo dos erros a estrutura monadica, devido ao quão grande vem sendo a demanda por implementação de tipos option/maybe.
Orientação a objetos é bom, mas ela não é o santo graal da programação que precisa ser usada em tudo, Na real se você pesquisar sobre, vai ver muito mais artigos sobre como orientação a objetos seguindo padrões SOLID e etc mais causa danos do que benefícios (só demoraram demais a perceber isso)
manter-se de mente aberta é sempre importante.
A título de curiosidade da pra fazer isso em python, usando:
print(locals()['nome_da_variavel'])
Não que seja uma boa prática, mas é possível.
É mais fácil falar o que não é possível fazer com Python 😂
Achei intuitivo.
É como uma função dentro de função na matemática.
Se temos f(x)=x+1, o valor retornado será apenas x acrescido de 1.
Se temos g(x)=2x, o valor retornado será o dobro de x.
Mas se temos g(f(x)), será primeiro acrescido 1 a x e então multiplicado o resultado por 2, pois o f(x) se torna o x da função g(x).
Sempre nos cursos de PHP dão esse exemplo, mas não consigo entender na pŕatica pra que seria útil. (sou iniciante)
É útil para POG (Programação Orientada a Gambiarra kkkkkkkkkkkkk)
@@gabrielavelino2980 Exato, isso é uma feature que deve ser evitada ao máximo, os casos de uso dela são tão específicos que provavelmente o programador nunca vai usar
Tem vários casos de uso, quem acredita que não é programador de framework ou wordpress. Qualquer programador que já tenha trabalhado com PHP em alto nível sabe que tem várias probabilidades para o uso e não apenas com POG
@@gabrielavelino2980 KKKKKKKKKKKKKKKKKKKKKKK
😂
KKKKKKKKKKKKKKKKKKKKKKKKKKK RI MUITO MUITO MUITO MUOITO MESO RI DEMAIS
Programadores dos anos 2020 descobrindo o que é um ponteiro
"Por acaso", você literalmente definiu isso.
Não é uma falha, é uma feature. Praticamente impossivel fazer isso "sem querer".
Eu acho bastante útil essa funcionalidade
Eu me perdi quando ele falou a palavra variável pela segunda vez
Única coisa engraçada em php é quando dizem que é lá morreu.😂😂
Isso acontece pq a variável $outra vai ser substituída por "cor", então na expressão $$outra, vai virar $cor, se tornando uma variável
É um vídeo recursivo kkkkkkkk muito foda
Cara, isso aí é um ponteiro, apenas isso, se for assim, C é uma linguagem engraçada também.
Na verdade é até um pouco confuso, mas é muito interessante🤔👏
programadores de php descobrindo ponteiros
É isso que dá faltar as vídeo aulas gravadas de programação 😂
Isso é útil pra programação dinâmica
Superou javascript
MINHA CABEÇA BUGOOOOOU
Se não me engano, no Clipper isso se chama macro substituição. Coisa da década de 1990.
isso existe em outras linguagens, inclusive no javascript, la se chama literalização, tem um nome parecido em ingles que não lembro, mas uso sempre no js esse truque pra tornar algumas coisas mais dinamicas
Desenvolvedores web descobrindo o que é um ponteiro
Caramba. Isso eu nao sabia. Vai me ajudar muito nas gambiarras kkkk
Agora eu vou aprender PHP
Relaxa amigo, não só foi vc que não entendeu nada, tô contigo ✊
Parece o ponteiro do C, a função é bem parecida e a utilidade dele é pegar o endereço de memória ou valor que está naquele endereço e consegue puxar ou alterar
variáveis dinâmicas, eu demorei pra entender isso quando estudei kkkkkk
É o que se chama variável variável. Apesar de "engraçado" pode ser útil.
Lembra muito o apontador do apontador de c++ 😂😂😂😂😂😂
Achei foda pra caramba kakakakakkakak
Pow, eu não lembro onde eu usava isso, mas eu gostava pra caramba dessa funcionalidade
Quando eu entendi, eu simplesmente falei um "ha" bem sincero. Muitas coisas interessantes da pra se fazer com php
Eu fiquei impressionado quando descobri que eu podia guardar uma string com o nome de uma classe e criar objetos a partir dessa variável, também funciona com métodos.
E eu criticando o JavaScript
Vale uma observação que isso não é uma gambiarra, pelo contrário, é muito útil quabdo estamos trabalhando com funções extremamente abstradas e necessita de uma listagem sem ser um vetor.
No início não entendi nada, no final estava como no comeco😂
Isso deve dar uma dor de cabeça de leve na hora de debugar esse macarrão
Uma vez fiquei tão nervoso por causa disso, estava mexendo em um código de um plugin do WordPress e tinha isso, eu nem fazia ideia q isso existia e fiquei Índia todo quebrando a cabeça para tentar entender o por que havia variáveis com dois sinais de dólar. PHP, eu te odeio e te amo ao mesmo tempo.
no python algo parecido pode ser realizado com a função nativa do python "eval()"
cor = "Azul"
outra = eval("cor")
print('outra')
# output
'Azul'
É oficial, preciso estudar mais para entender kkk depois de algum tempo eu volto aqui
Otimização foi pra casa do krl Kakakakaka
É muito é massa 😂❤