函数变量来自包含文件 - php

ste*_*anz 2 php variables function

我没有找到一个很好的答案我的问题,所以我开始一个新的主题.我有文件english.php,其中包含$ lang ['fname'] ="名字"等变量; .我还有header.php,其中包括english.php:include('english.php');. 现在,header.php包含在另一个php页面中,比如说addInfo.php.如果我在addInfo.php中写:echo $ lang ['fname']; 它显示了我的"名字",但是如果我在addInfo.php中写一个函数,作为示例函数添加(){echo $ lang ['fname'];}然后添加(); (我也试过echo added())它不想显示值("名字").有人知道这个样本(我认为)问题的解决方案.我准备尝试所有答案了.此致,StefanZ

Pas*_*TIN 9

当你写这个:

function added () {
    echo $lang['fname'];
} 
Run Code Online (Sandbox Code Playgroud)

PHP将搜索$lang函数本地的变量:

  • 它不会看到在函数之外声明的全局元素.
  • 并且,由于$lang函数内部没有变量集,$lang['fname']因此null- 即echoed 时不会显示任何内容.


要向PHP表明它应该使用函数外部的全局变量,你需要global在函数内部声明变量:

function added () {
    global $lang;
    echo $lang['fname'];
} 
Run Code Online (Sandbox Code Playgroud)


有关更多信息,请阅读PHP手册的" 变量范围"部分.