再会。我正在尝试执行一个函数。我声明一个全局变量来获取函数外部的数据(变量),并将该函数放入类的公共函数内。class Test { public function execute(){ $data = "Apple"; function sayHello() { global $data; echo "DATA => ". $data; } sayHello(); }}$test = new Test;$test->execute();预期结果:DATA => Apple真实结果:DATA =>全局变量没有获取函数外部的变量。为什么会发生这样的事?感谢您的帮助。
1 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
$data不是全局变量。它在另一个函数内,在一个类内。全局变量位于任何函数或类之外。
但无论如何,您的用例是不寻常的 - 很少需要像您所做的那样嵌套函数。这些函数的更传统、更逻辑、更可用的实现可能如下所示:
class Test {
public function execute(){
$data = "Apple";
$this->sayHello($data);
}
private function sayHello($data) {
echo "DATA => ". $data;
}
}
$test = new Test;
$test->execute();
工作演示:http://sandbox.onlinephpfunctions.com/code/e91b98bb15fcfa71b1c6cbbc305b5a93df678e8b
(这只是一种选择,但它是一个合理的选择,尽管由于这显然是一个简化的抽象示例,因此很难确定您的真实场景实际上需要什么或最适合什么。)
- 1 回答
- 0 关注
- 99 浏览
添加回答
举报
0/150
提交
取消