If you use func_num_args() to ascertain the number of arguments passed to
the function and func_get_arg() to retrieve each argument in turn (from a
list of unstated length), will that do the trick?


> I've created (with help from some code from the site) a function to make
> strings or arrays mysql safe. It works just fine, assuming you pass your
> variables by reference ( sqlSafe(&$var) ), but I get this error every time
> it is used:
> [error] PHP Warning:  Call-time pass-by-reference has been deprecated -
> argument passed by value;  If you would like to pass it by reference,
> the declaration of [runtime function name]().  If you would like to enable
> call-time pass-by-reference, you can set allow_call_time_pass_reference to
> true in your INI file.  However, future versions may not support this any
> longer.  in file.php on line X
> I want the function to be able to accept as many variables as needed to
> them sqlsafe (10 is enough for now), and to remove that annoying error,
> also like to not need to pass them by reference. Is this possible?? and if
> so, how?? I know it is possible to add the & before each function
> but then I can't pass more or less variables than I put in the function
> definition, cause you can't have default values for a reference parameter
> (go figure), and it'll also complain if you give it too few variables.
> function sqlSafe( $a0,
>      $a1=NULL,
>      $a2=NULL,
>      $a3=NULL,
>      $a4=NULL,
>      $a5=NULL,
>      $a6=NULL,
>      $a7=NULL,
>      $a8=NULL,
>      $a9=NULL){
>  if(func_num_args()>10)
>   echo "<h1>Too Many Args in sqlSafe</h1>";
>  for($i=0;$i<func_num_args();$i++){
>   $name="a" . $i;
>   if(!isset($$name)) continue;
>   if(is_array($$name)){
>    foreach($$name as $n => $v){
>     if(is_array($v))
>      sqlSafe(&${$name}[$n]);
>     elseif(isset($v))
>      ${$name}[$n] = mysql_escape_string ($v);
>    }
>   }else
>    $$name = mysql_escape_string ($$name);
>  }
> }
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to