Cita:
Iniciado por metacortex ... estoy resolviendo el asunto de los parámetros con un pequeño método que compartí en el foro hace tiempo, el cual permite colocarlos en cualquier orden -y hasta de manera más amigable- al invocar la función:
http://www.forosdelweb.com/f18/aport...dpress-906484/ Me parece bien, esa solucion que encontrastes para vos tiene una Gran ventaja y es que puedes hacer un Search&Replace en algun editor que soporte expresiones regulares como el Notepad++ para las llamadas a esas funciones y solucionar facil tu problema en 5 min a nivel de todo tu codigo. EXCELENTE SOLUCION !!!
Otra forma (la mas usual) de no liarse con el orden de parametros es enviando un array asociativo de los mismos
Supon tenias esto:
Código PHP:
Ver originalfunction hablar()
{
global $sujeto, $accion, $articulo, $objeto;
$articulo = isset($articulo) ?
$articulo : null;
return "$sujeto $accion $articulo $objeto";
}
$sujeto = 'I';
$accion = 'will eat';
$articulo = 'a';
$objeto = 'cookie';
echo hablar();
Fijate lo facil que la adapto:
Código PHP:
Ver original<?php
function hablar ($p)
{
Throw new InvalidArgumentException("Parametros estan mal en ".__FUNCTION__);
extract($p); // convierto array en algo retro-compatible
// DE AQUI para abajo tu funcion no cambia en nada ***
$articulo = isset($articulo) ?
$articulo : null;
return "$sujeto $accion $articulo $objeto";
}
echo hablar
(array('articulo'=>'a','objeto'=>'cookie','sujeto'=>'I','accion'=>'will eat'));
Al mini-chequeo no le des importancia.... solo verifico que sea un array() y que tenga entre 3 y 4 "parametros" puesto que uno de ellos es opcional (articulo)
*** Tu funcion puede tener como invariante "todo" excepto las primeras lineas o primera linea,.. el extract() aunque si tu necesitas devolver "algo" haras un return