Function_php by ashrafp

VIEWS: 12 PAGES: 4

									Capitulo 2
Function
   O coração de programação PHP, é, indiscutivelmente, a função. A capacidade de encapsular qualquer pedaço
   de código de uma forma que possa ser chamado de novo e de novo é inestimável que é a pedra angular da
   estrutura processual e de programação orientada objeto. Neste capítulo, que incidem sobre os diversos
   aspectos da criação e gestão de funções PHP scripts a partir de dentro por isso, este capítulo é sobre como
   escrever funções, em vez de usá-los.


   Sintaxe Básica
   Função sintaxe é na sua maior parte básica muito simples. Para criar uma nova função, nós simplesmente usar
   a palavra-chave função, seguido por um identificador, um par de chaves e parênteses:

   function name() { }

   PHP função nomes não são caso sensível. Tal como acontece com todos os identificadores em PHP, o nome
   deve consistir apenas de letras (az), números e o caráter de sublinhado, e deve não começar com um número.
   Para tornar a sua função fazer alguma coisa, basta colocar o código a ser executado entre as hastes e, em
   seguida, chamar-lhe.

         function ola()
         {
         echo "Ola mundo!";
         }
         hello(); // Mostra "Olá Mundo!"

   Retornando Valores
   Todas as funções em PHP retornar um valor mesmo que não explicitamente a causar-lhes. Deste modo, o
   conceito de "nula" funciona realmente não se aplica aos PHP. Você pode especificar o valor de retorno de sua
   função, utilizando o regresso palavra-chave:

         function hello()
         {
         return "Hello World"; // No output is shown
         }
         $txt = hello(); // Assigns the return value "Hello World" to $txt
         echo hello(); // Displays "Hello World"

Naturalmente, também permite que você volte a interromper a execução de uma função e ele sai mesmo se você
não quiser retornar um valor:

         function ola($who)
         {
         echo "ola $who";
         if ($who == "World") {
         return; // Nada mais na função será processada
         }
         echo ", como vai";
         }
         ola("World"); // Displays "ola World"
          ola("Reader") // Displays " Ola Reader como e você?"

Observe, no entanto, que mesmo que você não retornar um valor, PHP ainda irá causar a sua função para retornar
NULL. As funções podem também ser declaradas de modo que retornem pela referência; isto permite que você
retorne uma variável como o resultado da função, em vez de uma cópia (retornar uma cópia é o defeito para cada
tipo de dados exceto objetos).Tipicamente, isto é usado para coisas como recursos (como conexões da base de
dados) e ao executar o teste padrão da fábrica. Entretanto, há um caveat: você deve retornar variável você não
pode retornar uma expressão pela referência, ou use uma indicação do retorno vazio forçar um valor do retorno
NULO:

         function &query($sql)
         {
         $result = mysql_query($sql);
         return $result;
         }
        // The following is incorrect and will cause PHP to emit a notice when called.
        function &getHello()
        {
        return "Hello World";
        }
        // This will also cause the warning to be issued when called
        function &test()
        {
        echo ‟This is a test‟;}

Extensão variável
PHP tem três espaços variáveis: o espaço global, espaço da função, e espaço da classe. O espaço global é,
porque seu nome implica disponível a todas as partes do certificado; se você declarar ou atribuir um valor a uma
parte externa variável de uma função ou de uma classe, essa variável está criada no espaço global.Entretanto,
quando você incorpora uma função, PHP cria um espaço um novo “ardósia limpo” isso, pelo defeito, não contem
nenhuma variável e aquele é isolado completamente do espaço global. A variável definida dentro de uma função
está já não disponível depois que a função terminou executar. Isto permite o uso dos nomes que podem estar no
uso em outra parte sem ter que se preocupar sobre conflitos.

        $a = "Hello World";
        function hello()
        {
        $a = "Hello Reader";
        $b = "How are you";
        }
        hello();
        echo $a; // Will output Hello World
        echo $b; // Will emit a warning

Há duas maneiras alcançar variáveis no espaço global dentro de uma função; o primeiro consiste “importar” a
variável dentro do espaço da função usando a indicação global:

        $a = "Hello";
        $b = "World";
        function hello()
        {
        global $a, $b;
        echo "$a $b";
        }
        hello(); // Displays "Hello World"


Você observará que as tomadas globais uma vírgula separaram a lista das variáveis para
Muitos colaboradores sentem que o uso de global introduz um elemento da confusão em seu
código, e que “conectar” o espaço de uma função com o espaço global pode facilmente ser
uma fonte dos problemas. Preferem, em vez disso, usar a disposição super global de $GLOBALS,
que contem todas as variáveis no espaço global:

        $a = "Hello";
        $b = "World";
        function hello()
        {
        echo $GLOBALS[‟a‟] .‟ ‟. $GLOBALS[‟b‟];
        }
        hello(); // Displays "Hello World"


Passando Argumentos
Os argumentos permitem que você injete um número arbitrário dos valores em uma função a fim influenciar seu
comportamento:
        function hello($who){
        echo "Hello $who";
        }
        hello("World");
        /* Here we pass in the value, "World", and the function displays "Hello World"*/

Você pode definir todo o número dos argumentos e, no fato, você pode passar um número arbitrário dos
argumentos a uma função, não obstante quanto você especificou em sua declaração. Tente uma destas
alternativas ou consulte a Ajuda para obter dicas sobre como refinar a pesquisa.
Adicionalmente, você pode fazer argumentos opcionais dando lhes um valor de defeito. Os argumentos
opcionais devem ser a maioria de direita na lista e podem somente fazer exame de valores que simples
as expressões não são permitidas:

function hello($who = "World")
{
echo "Hello $who";
}
hello();
/* This time we pass in no argument and $who is assigned "World" by default. */




Listas de comprimento variável Argumento
Um erro comum quando declarar uma função for escrever o seguinte:

function f ($optional = "null", $required)
{
}

Isto não faz com que nenhuns erros sejam emitidos, mas faz também a nenhum sentido qualquer porque
você nunca omite o primeiro parâmetro ($optional) se você quiser especificar o segundo, e você não pode
omitir o segundo porque PHP se emitirá um aviso.
Nesta caixa, o que você quer realmente é listas do argumento do comprimento variável. Isto é, a habilidade de
criar uma função que aceite um número variável dos argumentos, dependendo da circunstância. Um exemplo
típico deste comportamento é exibido pela família do printf () das funções.
PHP fornece três funções internas para segurar listas do argumento do comprimento variável:
func_num_args(), func_get_arg() e func_get_args().

Está aqui um exemplo de como são usados:

function hello()
{
if (func_num_args() > 0) {
$arg = func_get_arg(0); // The first argument is at position 0
echo "Hello $arg";
} else {
echo "Hello World";
}
}
hello("Reader"); // Displays "Hello Reader"
hello(); // Displays "Hello World"


Você pode usar listas do argumento do comprimento variável mesmo se você especificar argumentos no
encabeçamento da função. . Entretanto, isto não afetará a maneira que as funções da lista do argumento
do comprimento variável se comportam. Por exemplo, os func_num_args () retorno imóvel o número total
dos argumentos passados a sua função, declarada anônimo.

function countAll($arg1)
{
if (func_num_args() == 0) {
die("You need to specify at least one argument");
} else {
$args = func_get_args(); // Returns an array of arguments
// Remove the defined argument from the beginning
array_shift($args);
$count = strlen ($arg1);
foreach ($args as $arg) {
$count += strlen($arg);
}
}
return $count;
}
echo countAll("foo", "bar", "baz"); // Displays ’9’




Passando argumentos por referência
Função argumentos também pode ser passada por referência, por oposição à tradicional
pelo método de valor, por antepondo com o operador por referência &. Isso permite
sua função de afetar externas variáveis:

function countAll(&$count)
{
if (func_num_args() == 0) {
die("You need to specify at least one argument");
} else {
$args = func_get_args(); // Returns an array of arguments
// Remove the defined argument from the beginning
array_shift($args);
foreach ($args as $arg) {
$count += strlen($arg);
}
}
}
$count = 0;
countAll($count, "foo", "bar", "baz"); // $count now equals 9

Ao contrário de PHP 4, PHP 5 permite que os valores de defeito estejam especificados para parâmetros
mesmo quando é declarado como a por referência:

function cmdExists($cmd, &$output = null) {
$output = „whereis $cmd„;
if (strpos($output, DIRECTORY_SEPARATOR) !== false) {
return true;
} else {
return false;
}
}

No exemplo acima, o parâmetro de $output está completamente opcional se uma variável não
for passada dentro, um novo será criado dentro do contexto dos cmd existente () e,
naturalmente, destruído quando a função retorna.

Resumo
As funções são um dos componentes os mais usados freqüentemente da língua de PHP (ou,
para essa matéria, de alguma língua). Sem eles, seria virtualmente impossível escrever o
código reutilizável. Ou mesmo objeto do uso - técnicas de programação orientada.
Para esta razão, você deve ser bem versed não somente nos princípios da declaração da
função, mas também nas implicações ligeiramente mais menos óbvias dos elementos como a
passagem de argumentos pela referência e a manipulação de listas do argumento do
comprimento variável.
O exame caracteriza um número de perguntas centradas em torno de uma compreensão
contínua dos como funciona trabalha-afortunado, estes conceitos é relativamente simples e
fácil agarrar, como ilustrado neste capítulo.

								
To top