variable valores una retornan referencia que por pasar parametros otra mandar funciones funcion php

valores - pasar variable de una funcion a otra php



¿Cómo se crean argumentos opcionales en php? (6)

El valor predeterminado del argumento debe ser una expresión constante. No puede ser una variable o una llamada de función.

Si necesita esta funcionalidad, sin embargo:

function foo($foo, $bar = false) { if(!$bar) { $bar = $foo; } }

Suponiendo que $bar no se espera que sea un booleano, por supuesto.

En el manual de PHP, para mostrar la sintaxis de las funciones con parámetros opcionales, usan corchetes alrededor de cada conjunto de parámetros opcionales dependientes. Por ejemplo, para la función de date() , el manual dice:

string date ( string $format [, int $timestamp = time() ] )

Donde $timestamp es un parámetro opcional, y cuando se deja en blanco, se predetermina al valor de retorno de la función time() .

¿Cómo se puede crear parámetros opcionales como este al definir una función personalizada en PHP?


Al igual que el manual, use un signo igual ( = ) en su definición de los parámetros:

function dosomething($var1, $var2, $var3 = ''somevalue''){ // Rest of function here... }


Algunas notas que también encontré útiles:

  • Mantenga sus valores predeterminados en el lado derecho.

    function whatever($var1, $var2, $var3="constant", $var4="another")

  • El valor predeterminado del argumento debe ser una expresión constante. No puede ser una variable o una llamada de función.


Dale al argumento opcional un valor predeterminado.

function date ($format, $timestamp='''') { }


La función de fecha se definiría de la siguiente manera:

function date($format, $timestamp = null) { if ($timestamp === null) { $timestamp = time(); } // Format the timestamp according to $format }

Usualmente, pondría el valor predeterminado así:

function foo($required, $optional = 42) { // This function can be passed one or more arguments }

Sin embargo, solo los literales son argumentos predeterminados válidos, por lo que utilicé null como argumento predeterminado en el primer ejemplo, no $timestamp = time() , y lo combiné con una comprobación nula. Los literales incluyen matrices ( array() o [] ), booleanos, números, cadenas y null .


Si no sabe cuántos atributos deben procesarse, puede usar el token de lista de argumentos varicos ( ... ) introducido en PHP 5.6 ( consulte la documentación completa aquí ).

Sintaxis:

function <functionName> ([<type> ]...<$paramName>) {}

Por ejemplo:

function someVariadricFunc(...$arguments) { foreach ($arguments as $arg) { // do some stuff with $arg... } } someVariadricFunc(); // an empty array going to be passed someVariadricFunc(''apple''); // provides a one-element array someVariadricFunc(''apple'', ''pear'', ''orange'', ''banana'');

Como puede ver, esta ficha básicamente convierte todos los parámetros en una matriz, que puede procesar de la manera que desee.