Voting

: min(one, three)?
(Example: nine)

The Note You're Voting On

Qiibow
3 years ago
get_defined_vars() is very useful for importing many values at once
into another scope (Such as User-defined functions).

Below is an example for showing some of many values and their variable-names in a table.
(useful in debugging)

You can put this user-defined function at many places in your script
to show some values (values to be changed in loops)
to check if they are what they shall be there or not.

<?php
// Set "get_defined_vars()" to 2nd argument.
function get_value_table($name_array, $gdv) {
$name_value_table = [];
foreach (
$name_array as $name) :
if (!
array_key_exists($name, $gdv)) :
$value = 'undefined';
elseif (
is_bool($gdv[$name])) :
$value = $gdv[$name]? 'true' : 'false';
elseif (
is_numeric($gdv[$name]) || is_string($gdv[$name])) :
$value = $gdv[$name];
elseif (
is_array($gdv[$name])) :
$value = '<pre>'.print_r($gdv[$name],true).'</pre>';
else :
$value = (PHP_VERSION_ID >= 80000)? get_debug_type($gdv[$name]) : get_type($gdv[$name]);
endif;
$name_value_table[] = '<tr><td>$'.$name.'<td>'.$value;
endforeach;
return
'<table border=1>'.implode("\n", $name_value_table).'</table>';
}
// (f) get_value_table()

$_1 = 'a';
$_2 = 'b';
$_3 = [1,2];
$_4 = false;
$_5 = null;

$name_array = ['_1','_2','_3','_4','_5','_6'];
$show_id = 1;

if (
$show_id === 1) :
echo
get_value_table($name_array, get_defined_vars());
endif;
/*
if $show_id === 1, only shows below.

$_1 a
$_2 b
$_3 Array
(
[0] => 1
[1] => 2
)
$_4 false
$_5 null
$_6 undefined
*/

$_2 = 'c';
if (
$show_id === 2) :
echo
get_value_table($name_array, get_defined_vars()); // $_2 c
endif;
# if $show_id === 2, $_2 turns "c".

?>

<< Back to user notes page

To Top