Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jonas_ti

Passando por Valor

Recommended Posts

Buenas pessoal...Essa semana estou enchendo o saco com funções não é? Pois tenho que estruturar todo meu projeto e estou com uma dúvida, pesquisei, pesquisei mas não encontrei nada...Teria como passar Parâmetros por Valor em Funções no PHP???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Buenas pessoal...Essa semana estou enchendo o saco com funções não é? Pois tenho que estruturar todo meu projeto e estou com uma dúvida, pesquisei, pesquisei mas não encontrei nada...Teria como passar Parâmetros por Valor em Funções no PHP???

Ola cara Velho nao sei se é o que voce procura mais vou dar um exemplo de codigo onde a variavel mail vem do meu formulario via POST poderia ser GET tanto faz.Neste exemplo ele verifica se o mail é valido ou nao function checaEmail($email) { return (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]{2,64}(\.[a-z0-9-]{2,64})*\.[a-z]{2,4}$",$email)); }Nao sei se com isto te ajuda ou nao.Mais de qualquer jeito boa sorte Falou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi direito, mas pelo que acho não é bem assim...

 

Parâmetro passado por valor seria assim...

 

PHP [/tr][tr]

<?

function teste($var, $var2)

{

$var2 = $var2 + $var + 1;//$var2 teve seu valor alterado

 

//Outros comandos aqui poderiam mudar o valor de $var

 

return $var;

}

?>

[/tr]

 

Dessa maneira teria o valor de $var quando atribuisse a função para alguma variável:

 

PHP [/tr][tr]

<?

$resultado_var = teste($var, $var2);

?>

[/tr]

 

Entretanto, teria como eu pegar o valor alterado de $var2, sem fazer return ou declará-la como global??? Assim:

 

PHP [/tr][tr]

<?

$var = 1;

$var2 = 2;

 

teste($var, $var2);

 

echo $var2;

//Mostraria na tela: 4

?>

[/tr]

 

Entenderam, o valor de $var2 foi alterado sem que eu me preocupasse em declará-lo como global ou retornálo na funcção... Será que teria como???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em PHP4 os paramentros são passados por valor por padrão.

PHP [/tr][tr]function foo ($var) {

$var = $var + 1;

}

 

$v = 5;

foo($v);

echo $v // 5

[/tr]
Mas também é possível passar por referência (em PHP5 objetos são passados por referência automaticamente):
PHP [/tr][tr]function foo (&$var) {

$var = $var + 1;

}

 

$v = 5;

foo ($v);

echo $v; //6

[/tr]

Uma função também pode retornar uma referencia

PHP [/tr][tr]function & foo () {

global $var;

return $var + 1;

}

 

$var = 1;

$var2 = foo(); //$var2=2 e $var=2

$var++;

echo $var2; // 3

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.