PHP函数使用外部变量

标签 php function variables

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'; 
};

全局 - 不好的做法

这篇文章经常被阅读,所以需要澄清一下global。使用它被认为是一种不好的做法(请参阅 thisthis)。

为了完整起见,这里是使用 global 的解决方案:

function parts($part) { 
    global $site_url;
    $structure = 'http://' . $site_url . 'content/'; 
    echo($structure . $part . '.php'); 
}

之所以有效,是因为您必须告诉解释器您要使用全局变量,现在它认为这是一个局部变量(在您的函数中)。

推荐阅读:

关于PHP函数使用外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11086773/

相关文章:

php - PDO 和 MySQL 'max_user_connections'

php - 正确的 PHP 代码从 MAGENTO 属性中删除小数

matlab:如果 x > 1 可以产生 NaN 的快速函数

javascript - 在循环中声明的变量和重新使用的变量会发生什么

javascript - 在JS中,如何获取obj变量的名称

php - PHP 中的坏词过滤器?

php - Yii2:phpoffice/phpexcel 将 .xlsx 文件识别为 HTML

python - 从 Python 中的字符串列表中删除章节号

javascript - 如何创建一个将属性值分配给其他属性的函数?

python - 在 Python 脚本运行之间将持久变量保存在内存中