在get_defined_vars中计算变量

时间:2016-02-15 17:37:47

标签: php arrays

我的变量数量未知,例如:

development -> develop

我使用$number_one = array(21,5,4,33,2,45); $number_two = array(1,5,14,23,42,35); $number_three = array(13,33,45,17,2,7); $number_four = array(2,44,5,21,23,33);

计算所有已定义的变量

我如何计算变量的数量 - 在所有数组中的数量?

我使用$arr = get_defined_vars();,但也许我没有正确地做到这一点。

foreach

我不知道为什么结果是8:/

3 个答案:

答案 0 :(得分:2)

试试这个:

var selected_object = canvas.getActiveObject();
canvas.sendBackwards(selected_object);`

注意:

  • 代码只计算数组,没有标量( is_array())。
  • 它排除了超级全局数组,如 GLOBALS _POST 等。

结果:

  

number_one是一个数组
  number_two是一个数组
  number_three是一个数组
  number_four是一个数组
  #arrays = 4

答案 1 :(得分:2)

全部是因为,get_defined_vars()会返回某些预定义的索引,例如GLOBALS_POST_GET_COOKIE_FILES和其他索引这是用户定义的,在您的情况下,这些是number_one, number_two, number_threenumber_four

有关get_defined_vars()的更多详情,请参阅link

由于用户定义的索引仅在预定义索引之后,您可以使用array_slice对已定义的数组进行切片。

$number_one = array(21,5,4,33,2,45);
$number_two = array(1,5,14,23,42,35);
$number_three = array(13,33,45,17,2,7);
$number_four = array(2,44,5,21,23,33);
$arr = get_defined_vars();
$arr    = array_slice($arr, 5, count($arr));
echo count($arr);

打印4。

答案 2 :(得分:1)

函数get_defined_vars()获取服务器中当前定义的所有变量,包括环境和服务器变量。

$number_one = array(21,5,4,33,2,45);
$number_two = array(1,5,14,23,42,35);
$number_three = array(13,33,45,17,2,7);
$number_four = array(2,44,5,21,23,33);
$arr = get_defined_vars();
print_r($arr);

尝试此代码并在浏览器中查看输出。我相信你会知道实际定义了多少变量(包括你定义的变量)

供参考:http://php.net/manual/en/function.get-defined-vars.php