Quando você cria uma função e passar parâmetros para ele em PHP : Hypertext Preprocessor, é preciso entender o alcance dos parâmetros. PHP obriga a declarar especificamente quando para permitir que uma função para modificar o valor global de um parâmetro. No PHP versão 5, o modelo de objeto afeta a forma como os objetos são tratados quando passados como parâmetros para funções. Enquanto o modelo está em conformidade com o padrão global PHP , ele fornece uma função que permite que você manipule os valores globais dos membros do objeto sem declarar especificamente esta na definição da função . Âmbito Parâmetro
Quando você passar uma variável para uma função em PHP ea função modifica o valor da variável , não tem nenhum efeito sobre o valor da variável fora do escopo da função. Para permitir que uma função para modificar o valor de uma variável , você deve especificamente declarar essa intenção prefixando o nome da variável com um e comercial na definição da função . Por exemplo :
função modify_param , (& param) {}
Valor ou Referência
Uma função não pode modificar o valor de uma variável fora seu próprio escopo , porque o PHP passa a variável por valor. Ele cria uma cópia do valor da variável e passa a cópia para a função. Quaisquer alterações a esse valor afeta somente a cópia local. Quando você passar por referência usando o comercial na definição da função , PHP passa um ponteiro para o espaço de endereçamento de memória que contém o valor da variável. Operações na variável são então realizados contra o valor global do variável , não uma cópia de seu valor.
Objetos Passando
Quando você passar um objeto como um parâmetro para uma função , PHP ainda passa o objeto por valor, mas ele passa um tipo diferente de valor. Um exemplar de um identificador de objecto , ou identificador , é passado para a função . O identificador de objecto permite que a função para encontrar o espaço de endereço de memória , onde os valores dos membros de objectos são armazenados . Isto significa que os membros de um objeto são realmente passados por referência. As operações que utilizam as propriedades e métodos de um objeto manipular o espaço de endereçamento de memória desses membros e mudar seus valores globais.
Handle Objeto Copiar
Nem todos os objetos em PHP são passados por referência, mesmo que as mudanças aos membros do objeto afetar os valores globais. Uma cópia da pega objecto é passado para uma função . Se uma função faz uma atribuição que muda o próprio punho objeto , que a mudança não modifica o identificador de objeto , uma vez que é passado por valor . Para permitir que uma função modifique identificador do objeto, você deve passar o objeto por referência, tal como faria com qualquer outra variável em PHP.