Ir para conteúdo

POWERED BY:

Arquivado

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

Filipe_Moraes

[Resolvido] Capturar valor de um array dentro de uma função

Recommended Posts

Olá pessoal, tenho a seguinte dúvida:

Estou criando um array e logo a seguir chamo uma função, acontece que dentro dessa função não consigo capturar o valor do array, exemplo:

function cclData($valor){
		$valorfinal = 10*$arrayPer[$valor];
	return $valorfinal;
}

$arrayPer= array();
$arrayPer[0] = 0.5;
$arrayPer[1] = 0.1;
$arrayPer[2] = 0.2;
cclData(0);

E mesmo fazendo um echo do array dentro da função não da nada:

function cclData($valor){
	$valorfinal = 10*$arrayPer[$valor];
	echo($arrayPer[0]." | ".$arrayPer[1]." | ".$arrayPer[2]);
	exit;
}
Aparece na tela isso: ||

 

Agradecia a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja resolvi, mas isso é normal?

Coloquei dentro da função o seguinte codigo:

$arrayPer= $GLOBALS["arrayPer"];

?? Estranho!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz um teste assim e foi fiz de cabeça posso estar boiando...

 

function cclData($valor){
		$valorfinal = 10*$valor;
	echo $valorfinal;
}

$arrayPer= array();
$arrayPer[0] = 0.5;
$arrayPer[1] = 0.1;
$arrayPer[2] = 0.2;
$valor = $arrayPer[0];
cclData($valor);

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa é a forma errada de se fazer.

você criou a função beleza.. agora vem a hora de chamar ela.

 

Ai você passaria esse array que você quer usar, como parâmetro da função.. pois os escopos são diferentes, e oque você criar fora da função não vai existir dentro dela, e se você criar dentro, só vai existir dentro.

 

Não use GLOBALS para isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, percebi!

Mas não é bom usar o GLOBALS dentro da função? Porque seria errado?

Ja que agora sei que não se deve usar gostaria de saber porque, so por entender mesmo. :P

 

Agradecia a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, percebi!

Mas não é bom usar o GLOBALS dentro da função? Porque seria errado?

Ja que agora sei que não se deve usar gostaria de saber porque, so por entender mesmo. :P

 

Agradecia a ajuda!

Amigo o interessante seria você utilizar Orientação a Objetos. Exemplo:

 

class Calcs{
  private $arrayPer = array();

  public function setPer($index, $value){

	$this->arrayPer[$index] = $value;

  }

  public function getPer($index){

	return $this->arrayPer[$index];

  }

  public function cclData($index){
		$valorfinal = 10 * $this->arrayPer[$index];
	return $valorfinal;
  }

}

$objeto = new Calcs();
$objeto->setPer(0, 0.5);
$objeto->setPer(1, 0.1);
$objeto->setPer(2, 0.2);
echo $objeto->cclData(0);

Essa é uma das diversas maneiras que podem ser implementadas utilizando POO.

 

A utilização de GLOBALS abre brechas de segurança, por isso muitos não recomendam a utilização.

 

Espero ter ajudado.

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.