function parts($part) {
$structure = 'http://' . $site_url . 'content/';
echo($tructure . $part . '.php');
}
此函数使用在此页面顶部定义的变量$site_url,但此变量未传递到函数中.
我们如何让它在函数中返回?
解决方法:
添加第二个参数
您需要将其他参数传递给您的函数:
function parts($site_url, $part) {
$structure = 'http://' . $site_url . 'content/';
echo $structure . $part . '.php';
}
在关闭的情况下
如果您更愿意使用闭包,那么您可以将变量导入当前范围(use关键字):
$parts = function($part) use ($site_url) {
$structure = 'http://' . $site_url . 'content/';
echo $structure . $part . '.php';
};
全球 – 一种不好的做法
这篇文章经常被阅读,因此需要澄清有关全球的内容.使用它被认为是一种不好的做法(参见this和this).
为了完整性,这里是使用全局的解决方案:
function parts($part) {
global $site_url;
$structure = 'http://' . $site_url . 'content/';
echo($structure . $part . '.php');
}
它的工作原理是因为你必须告诉解释器你想要使用全局变量,现在它认为它是一个局部变量(在你的函数中).
建议阅读:
标签:php,variables,function
来源: https://codeday.me/bug/20190926/1818014.html