Em Busca da “Zend PHP Yellow Pages”
Funções – Parte VI – Passar argumentos por referência
Argumentos da função também podem ser passados por referência, prefixando com o operador de referência &. Isto permite sua função visualizar e alterar variáveis externas:
<?
function contarTodos(&$count)
{
if (func_num_args() == 0) {
die(“Você precisa especificar pelo menos um argumento.”);
} else {
$args = func_get_args(); // Retorna um array de argumentos
array_shift($args); // Remove o argumento definido no inicio.
$count = strlen ($arg1);
foreach ($args as $arg) {
$count += strlen($arg);
}
}
}
$count = 0;
contarTodos($count, “um”, “dois”, “três”);
echo $count; // será impresso 10
?>
Observação:
Isso é muito importante para você ficar sabendo, que as funções só aceitam variáveis para serem passadas por referência, você não pode passar uma expressão.
Ao contrário do PHP 4, PHP 5 permite que o valor padrão possa ser especificado, mesmo para os parâmetros quando forem declarados por referência:
function cmdExiste($cmd, &$saida = null) {
$saida = ‘onde $cmd’;
if (strpos($saida, DIRECTORY_SEPARATOR) !== false) {
return true;
} else {
return false;
}
}
No exemplo acima, o parâmetro $saída é totalmente opcional, se uma variável não for passada, uma nova será criada no âmbito do cmdExiste() e destruída quando a função retornar.
| Print article | This entry was posted by Filippe on 10 de February de 2010 at 8:00, and is filed under funções. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |