2016-07-24 101 views
2

我尝试过程中使用函数作为返回结果的数组值的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

'$ StartTagsArray = [ '产品1'=>功能($属性){return $ result = $ attribute * 2; },]; echo $ StartTagsArray ['product1'](24);' – splash58

回答

1

splash commented,使用anonymous function

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

$attr = 24; 

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

echo($result); 

此打印:

+0

谢谢你们。这个伎俩。 –