使用函数作为返回结果的数组值

时间:2016-07-24 10:07:40

标签: php arrays lambda xml-parsing anonymous

我正在尝试使用函数作为返回结果的数组值来处理xml文件,例如:

$StartTagsArray = [      
    'product1' => getValue($attribute){ return $result = $attribute * 2; },     
];     

$attr = $xml->getAttribute('w:val');
$result = $StartTagsArray[$xml->name];   
echo($result);  

不幸的是,我正在努力解决这个问题,遇到各种错误,但在任何时候我都无法访问并显示返回的值。我已经尝试将$ attr作为函数中的全局函数。我已经尝试使用GLOBALS数组,将$ attr作为参考传递给函数& $ attr。使用" call_user_func()",并使用各种闭包,例如: -

‘product1' => getValue($attr, function() use( &$var)){ return $var * 2;    }  

事实上,我已经从堆栈溢出和php.net内部读取并尝试了大量可能的解决方案,但无济于事。我接受在我缺乏经验的情况下,我很可能会遗漏一些明显或不理解数组/回调等方面的东西,但对于我的生活无法理解它。

有人能告诉我是否有办法将变量传递给数组中的函数并显示/使用返回的值?

由于

1 个答案:

答案 0 :(得分:1)

splash commented,请使用anonymous function

<?php
$StartTagsArray = [
    'product1' => function($attribute){ return $attribute * 2; }
];

$attr = 24;

$result = $StartTagsArray['product1']($attr);

echo($result);

打印:

  

48