Re: is_null() and is_string() reversed when using in switch case statements... [SOLVED]
| From: | Jim Lucas | Date: | Fri, 15 Jul 2011 14:57:38 +0000 |
| Subject: | Re: is_null() and is_string() reversed when using in switch case statements... [SOLVED] | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-314092@lists.php.net to get a copy of this message | ||
On 7/14/2011 7:44 PM, Daevid Vincent wrote:
> Ah! Thanks Simon! That is exactly right. Doh! I should have thought of
> that... *smacks head*
>
> Here is the fruit of my labor (and your fix)...
>
> /**
> * Useful for debugging functions to see parameter names, etc.
> * Based upon
> http://www.php.net/manual/en/function.func-get-args.php#103296
> *
> * function anyfunc($arg1, $arg2, $arg3)
> * {
> * debug_func(__FUNCTION__, '$arg1, $arg2, $arg3', func_get_args());
> * //do useful non-debugging stuff
> * }
> *
> * @access public
> * @return string
> * @param string $function_name __FUNCTION__ of the root function as
> passed into this function
> * @param string $arg_names the ',,,' encapsulated parameter list of
> the root function
> * @param array $arg_vals the result of func_get_args() from the root
> function passed into this function
> * @param boolean $show_empty_params (FALSE)
> * @author Daevid Vincent
> * @date 2011-17-14
> * @see func_get_args(), func_get_arg(), func_num_args()
> */
> function debug_func($function_name, $arg_names, $arg_vals,
> $show_empty_params=FALSE)
> {
> $params = array();
> echo $function_name.'(';
> $arg_names_array = explode(',', $arg_names);
> //var_dump($arg_names, $arg_names_array, $arg_vals );
> foreach($arg_names_array as $k => $parameter_name)
> {
> $v = $arg_vals[$k];
> //echo "k = $parameter_name = $k and v = arg_vals[k] = $v<br>\n";
> switch(true)
> {
> case is_string($v): if ($show_empty_params) $v =
> "'".$v."'"
> ; break;
> case is_null($v): if ($show_empty_params) $v = '{NULL}';
> break;
> case is_bool($v): $v = ($v) ? '{TRUE}' : '{FALSE}'; break;
> case is_array($v): (count($v) < 10) ? $v =
> '['.implode(',',$v).']' : $v = '[ARRAY]'; break;
> case is_object($v): $v = '{CLASS::'.get_class($v).'}';
> break;
> case is_numeric($v): break;
> }
>
> if ($show_empty_params || $v) $params[$k] = trim($parameter_name).':
> '.$v;
> }
> echo implode(', ',$params).")<br/>\n";
> }
>
>
>
Can you give an example of where this might be useful?
Jim Lucas