Php 从包含的文件中检索变量

Php 从包含的文件中检索变量,php,Php,我有一个php文件,其中包含另一个使用include() 我在包含的文件中定义了一个变量$something,该变量将根据包含的文件中运行的函数而变化 现在,我想在原始文件中打印该变量,当我使用echo$something时,它完全不打印任何内容,帮助吗?用于调试定义的变量 您可能遇到了一个问题,即在修改变量的函数中没有将变量声明为全局变量 function foo() { global $something; $something='bar'; } 在这方面,您可以在最具教育

我有一个php文件,其中包含另一个使用
include()
我在包含的文件中定义了一个变量
$something
,该变量将根据包含的文件中运行的函数而变化


现在,我想在原始文件中打印该变量,当我使用
echo$something
时,它完全不打印任何内容,帮助吗?

用于调试定义的变量

您可能遇到了一个问题,即在修改变量的函数中没有将变量声明为全局变量

function foo()
{
    global $something;
    $something='bar';
}
在这方面,您可以在最具教育意义的网站上找到PHP手册页面


那么,为什么这是一个糟糕的设计选择呢?首先,检查C++中的答案。对于PHP来说,答案其实没有什么不同——它可能会导致无法维护和无法阅读的代码

然而,PHP还有另一个(越来越历史化的)缺陷——如果启用“register\u globals”设置,用户可以通过URL查询字符串设置全局变量。这可能会导致各种各样的安全问题,这就是为什么现在默认情况下会关闭它(永远不要编写需要打开它的新代码)


正如一位智者曾经说过的,“全局是通往黑暗面的道路。全局导致愤怒。愤怒导致仇恨。仇恨导致痛苦”:)

您可能已经在全局范围内声明了变量,并试图在功能范围内使用它。要解决此问题,请使用
global
命令

$myglobal = 3;

function printMyGlobal() {
   global $myglobal; // will not work without this line
   echo $myglobal;
}

希望OP能在一个新问题中继续“为什么这是一个糟糕的设计选择”。为什么这是一个糟糕的设计选择?(不是在一个新问题中,但如果你不介意的话,我想获得信息:))对不起,我分心了,打算扩大这个答案。我现在会再做一点!