tadarank afiliados

31 maio, 2012

Substituta para a Empty do PHP pra não dar erro tosco "can't use function return value in write context"

Cansado de erros "Can't use function return value in write context"  no PHP ?

Segundo uma pesquisa rápida e sem vergonha no Google a gente vê que este erro é porque alquém do PHP quis algumas coisas do PHP não são funções e sim construções da linguagem (O carlos me explicou nos comments que empty não é language construct). Daí que as malditas só aceitam variáveis como argumento e não aceitam funções. Uma dessas coisas é a Empty().

*Tem também outras coisas que geram este erro, mas tô com preguiça de sair procurando e listando tudo aqui.

Expicando com exemplos:

Não dá erro: empty($variavelTal)
Dá erro: empty(funcaoTal())

Uma frescagem né?

Daí fiz uma funçãozinha gambiarra rápida pra este problema com o empty e estou guardando aqui no meu blog para caso eu precise no futuro.


function empti($oque){
//tive que fazer esta porque a empty do php é muito fresca  
//e só aceita variáveis como parametro, daí não aceita 
//coisas como empty( funcaoX() ) ou empty ( ($variavel) )
//também coloquei um trim aqui dentro
$oque = trim($oque);
$oque = empty($oque);
return $oque;
}

Pronto. Agora aceita funções. Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

2 comentários:

  1. Como agradecimento pela dica, o problema não é que empty é um "language construct", mas que essa função aceita apenas variáveis como parâmetro (na documentação diz isso).
    O print também um construto de linguagem mas aceita funções como parâmetro.
    Abs

    ResponderExcluir

Resultado! Concursos