Posts TaggedCassio Santos
Funções recursivas no PHP
Sempre gostei de fazer funções recursivas e quando posso tento utilizá-las pois acho charmosas e economizam código mas elas requerem um pouco mais de raciocíonio e atenção devido a facilidade de se criar loop/laço infinito.
( Noel Rocha )
<?php
function escape($var)
{
if (!is_array($var)) {
if(get_magic_quotes_gpc() == 1)
$var = stripslashes($var);
return mysql_escape_string($var);
}
foreach ($var as $chave => $valor)
$var[$chave] = escape($valor);
return $var;
}
?>
— Função recursiva criada pelo Noel para o escape, isto é, a anulação dos caracteres de controle de texto que uma variável de texto possuí como contra-barras, apóstrofo, aspas e aspas duplas.
Pessoalmente eu não utilizava funções recursivas pois é verdade que devemos ter muito cuidado com a criação de loops infinitos, mas a devida utilização das funções recursivas é muito importante de se compreender.
A função acima também poderia ser dividida em duas, mas neste caso teríamos mais um procedimento criado e talvez nós não o utilizássemos mais no nosso projeto. Determinadas vezes é chato ver procedimentos e mais procedimentos em alguns scripts. Crie-os quando for necessário. Se for possível, use as funções recursivas.
Além da forma apontada é claro que existem outras alternativas para o tratamento de strings no PHP para evitar uma Injeção SQL, mas este não é o nosso assunto de hoje, ok?
Add comment Junho 1, 2009
Programador tem que concluir ensino superior
Você lembra do Termo Geral da Progressão Aritmética? E da somas dos termos de uma P.A ?
Pois bem, muita gente se esquece das coisas mais fundamentais na matemática e demais informações que aprendemos na escola e são congruentes a lógica de programação.
Por exemplo: Se quiséssemos a soma dos 50 primeiros números pares e inteiros do sistema decimal alguém poderia criar o código abaixo:
para variavel_de_controle = 1 até 50 passo 2 faça variavel_soma = variavel_soma + 1 fim-para imprima variavel_soma
Porém se pararmos para analisar podemos utilizar a fórmula do termo geral
e da soma
para ter um trabalho mais rápido e que não consuma muitos recursos de processamento. Seria muito mais simples fazer:variavel_ultima = 2 + (50-1) * 2O que nos retornaria 98 + 2 = 100
variavel_soma = (50(2+100))/2
O que nos retornaria 5100 / 2 = 2550
Muito mais simples, porém muita gente não sabe e fica fazendo loops que gravam e efetuam leitura da memória 50 vezes gastando mais memória e processamento do que deveria e se estive estruturado corretamente. Muita gente tem preguiça de pensar.
5 comments Novembro 24, 2007
Porque ninguém usa o &= ?
No VB.Net raramente vi códigos que utilizem o operador de atribuição com concatenação &= de modo que tem gente que repete milvezes o nome da variável em atribuições em que precisa preservar o início da variável de texto.
Tem uma forma mais fácil o &= está ae disponível para utilização.
Sabendo que você é uma boa pessoa me ajuda a esclarecer essa dúvida. Porque ninguém usa?
Novembro 20, 2007
PHP tem sintaxe alternativa da discórdia
O PHP é muito interessante, existem formas alternativas de se efetuar a mesma operação, um exemplo disso é a sintaxe do if por exemplo, que pode ser a tradicional:
if (expressão) { <operações>} else { <operações>}
Ou:
if (expressão) : <operações> else: <operações> endif
Para quem está acostumado com VB a sintaxe alternativa é bem fácil de gravar, mas isso gera muita polêmica, tem gente que nem intende de uma forma, quanto mais tendo duas ou três. O bom é que está ae, e isso que importa.
<?php $variavel = "cassio"; if ($variavel == 2): echo "variavel = 2"; elseif ($variavel == 7): echo "variavel é 7"; elseif ($variavel == "cassio"): echo "variavel =cassio"; else: $variavel = "abracadabra! a variavel nao possui nenhum dos valores definidos."; echo $variavel; endif ?>
Novembro 17, 2007
Bem vindo
Aqui publicarei informações sobre diversas linguagens de programação e artimanhas conhecidas na Internet com o objetivo de resolver os principais problemas da didática e mostrar que existem ferramentas disponíveis que não são utilizadas como deveriam.
Junho 5, 2007