*   >> Leitura Educação Artigos >> tech >> Designer de Web

Php - Passar por referência, um Approach

diferente

Então, antes de saltar apenas em referências passageiras a funções, permite revisitar a abordagem muito mais comum, apenas para fornecer uma atualização rápida para aqueles que estão fora da prática, ou, aqueles que são apenas agora em expansão para os reinos de funções

A função encontradas em php parece mais com freqüência como um dos dois exemplos a seguir:.


 //no returnfunction sayHi () {echo "Olá me, encontrar o meu verdadeiro eu! ';} sayHi (); //Mostra o nosso texto 

Esta é uma função que irá fazer algo como texto de saída para a tela, ou lançar um erro, ou qualquer outra coisa que você quer que ele faça

 //returnfunction growold ($ idade. ) {$ age = $ idade + 1; return $ idade;} $ myAge = 21; $ myAge = growold ($ myAge); echo $ myAge; //22 

Podemos ver que esta função recebe uma variável, presumivelmente uma idade, e incrementa-lo por um, antes de retornar o novo valor para o usuário.

Um pouco inútil, mas ilustra nosso ponto.

Agora, observe no segundo exemplo, temos um parâmetro de função de US $ idade. Quando esta função é chamada, você está apenas enviando um valor a ela, se é o valor atual de uma variável, ou, apenas um número, como '15'. Isso é chamado de "passar por valor", e é o tipo de função mais comum, de longe.

Agora, o que se queremos executar algumas ações em nosso variável real, não apenas seu valor atual? Para pensar sobre isso de uma maneira diferente, o que, se quisermos alterar o que está em nosso recipiente, em vez de uma cópia do mesmo? Considere o seguinte exemplo

 //adicionar um número à nossa arrayfunction addAFive ($ array) {$ array [] = 5;}. $ MyArray = array ('1', '2', '3', '4'); addAFive ($ myArray); print_r ($ myArray); //Qual é a saída? 

A resposta pode não ser o que você pensa.

Uma vez que só passou uma cópia do nosso $ myArray para a função, apenas a cópia foi dado um '5'. A matriz original ainda contém apenas o 1,2,3 números, e 4. Assim, a pergunta é, como é que vamos enviar nosso item real para a função em vez de uma cópia? A resposta é um simples 'e'. É isso mesmo, o humilde e comercial.

Se prefaciar o nosso nome variável na lista de parâmetros da nossa função com este, em seguida, a função vai saber a operar no item passado real, não uma cópia dele! É muito legal, confira:

 //adicionar um nome para a nossa arrayfunction addAName (& $ array) //notar a 'e' anterior $ array {$ array [] = 'Jake';} $ myArray = array ('Jane', 'John', 'Joey')

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.