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

Criando variavies apenas caso não existam


Vectorial

Pergunta

Alguém sabe se o PHP tem um caminho curto para criar variáveis apenas quando não existirem..

Mais ou menos como uma variável padrão caso não 'setada'..

Minha intenção é subistituir a expressão abaixo por uma mais simples:

Assim o sistema só irá ajustar a variável $a caso ela não exista.

if (!$a) $a = 2;

Outra opção que funciona mas não acho pratica:

$a = (!$a ? 2 : $a);

Penso em usar alguma coisa como

!$a = 2

ou

if (!$a = 2)

Mas nenhuma deu resultado. Ambos 'setam' a variável mesmo quando existente.

A intenção é fazer mais ou menos como funciona o valor padrão das variáveis nas funções.

function teste($a = 2) { return $a; }

echo teste(1); // retorna 1

echo teste(); // retorna 2

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

5 respostass a esta questão

Posts Recomendados

  • 0

O que eu quero é simplificar a função ao máximo..

Usar o isset vai deixar a função ainda maior..

Quando se tem uma gama grande de variáveis e quer atribuir valores específicos para variáveis que não tem valores..

Por exemplo..

Caso um usuário não me envie uma DATA, ou segmentos dela, via post o sistema irá usar a data de hoje..

No post temos a variável $dia $mes $ano e o codigo para verificar ficaria +ou- assim:

if (!$dia) $dia = date("d");

if (!$mes) $mes = date("m");

if (!$ano) $ano = date("Y");

A atribuição de valores "padrões" é uma constante nesse meu sistema e tenho que ficar fazendo essa ferificação muitas vezes.

Seria muito mais fácil um código unico que ajuste uma variável apenas se vazia.

Exemplo (Esse comando não existe no PHP mas seria uma boa sugestão)

!$dia = date("d");

!$mes = date("m");

!$ano = date("Y");

ou

$dia != date("d");

$mes != date("m");

$ano != date("Y");

Do mesmo modo poderia ser simplificada a função de aplicação direta.

Ex:

echo "A data corrente é ".(!$dia ? date("d") : "$dia")."/".(!$mes ? date("m") : "$mes")."/".(!$ano ? date("Y") : "$ano");

Acho que não deveria haver a necessidade de repetir a variável no comando.. Nota que tenho que escrever cada variável 2x.

Poderia ter um comando como (este exemplo também é HIPOTÉTICO e NÃO funciona):

echo "A data corrente é ".($dia || date("d"))."/".($mes || date("m"))."/".($ano || date("Y"));

Ou seja.. Ele usa a variável 'OU' um valor pré-ajustado;

Se o comando isset tivesse um "ELSE" embutido seria interessante..

Hipoteticamente...

!isset ($dia,date("d"));

!isset ($mes,date("m"));

!isset ($ano,date("y"));

Sesse caso ele atribuiria o valor caso a variável estivesse vazia..

Acredito que o PHP deva ter qualquer coisa semelhante a isso.. ou não?? <_<

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,2k
    • Posts
      652k
×
×
  • Criar Novo...