想象一下这个示例代码:
$the_url = the_variable(); // this function returns "www.site.com/post123" here
$items = generate_array();
foreach($items as $item) {
echo $the_url; // this function returns "www.site.com" here
}
现在,是否可以将the_variable()的返回值存储为$ the_url?因为它看起来像存储函数本身并为每个foreach迭代运行它。所以基本上我希望foreach循环每次都返回www.site.com/post123
。
我知道这是基本而简单的,虽然我找不到解决方案。
答案 0 :(得分:2)
我认为你错了。当你这样做时:
$var_name = function_name();
... $var_name
设置为function_name()
的返回 - 它不是对该函数的引用。
考虑这个例子;如果它是一个参考,你会在每个结果中看到不同的数字:
function the_variable() {
return 'http://www.test.com/' . rand(0, 100);
}
$the_url = the_variable();
$items = range(1, 20);
foreach($items as $item) {
echo $the_url . PHP_EOL;
}
但是,as you can see,它返回第一个随机数,并且该返回值存储在$the_url
中,直到可以重新定义或取消设置为止。
与此示例相反:
foreach($items as $item) {
echo the_variable() . PHP_EOL;
}