我怎样才能使所有变量都可以在PHP的方法中访问

How can i make all variables outiside accessible inside a method in PHP

提问人:Vinicius Cavalcante Santos 提问时间:1/15/2023 最后编辑:Vinicius Cavalcante Santos 更新时间:1/16/2023 访问量:27

问:

我不认为这被认为是一种不好的做法,但我的目的只是为了研究,我想取消如果一个函数“渲染”内部有一个包含,可以有这个包含来访问外部变量,否则它无论如何都会丢失它,即使因为该渲染已经是应用程序的末尾,所以失去对这些变量的访问是没有意义的,而且通过方法传递它然后使用摘录。

我尝试使用全局,但您需要告知每个变量的名称,并且无法在更大的范围内工作。

编辑1:我正在添加更多信息(对不起,这是我关于stackoverflow的第一个问题) 所以我正在研究的代码来自 League/Plates,我试图按照我上面所说的去做,但我找到了这段代码

public function render($data) {
  extract($data);
  ob_start();

  include $this->path();

  $content = ob_get_clean();

  if (isset($this->layoutName)) {
    $layout = $this->engine->make($this->layoutName);
    $layout->sections = array_merge($this->sections, array('content' => $content));
    $content = $layout->render($this->layoutData);
  }

  return $content;
}

因此,在此代码中,当包含视图时,在调用渲染之前创建的所有变量(例如在控制器内部或类似的东西)都无法从视图内部访问它们,当然我可以通过变量$data,但想象一下,如果我有很多变量并多次调用渲染,在我看来没有多大意义。我想也许可以创建渲染方法的功能性外观,但我不知道是否可能以及如何完成。

php oop 变量 方法 范围

评论

0赞 zanderwar 1/15/2023
函数可以访问函数外部的其他函数,通常应在声明函数之前包含该文件,以便您编写的函数可以访问您包含的所有内容。在函数中有一个 or 是非正统的。includerequire
0赞 ADyson 1/16/2023
如果您想要在创建它的函数之外提供一些东西,最简单的方法是从函数中返回它。如果有多个变量,则在关联数组中返回它们。这有帮助吗?情况的描述在某些地方有点不清楚,一些示例(伪)代码将有助于举例说明您的意思。
0赞 ADyson 1/16/2023
或者,也许您包含的任何内容实际上都应该是一个函数本身或其他东西。我觉得可能在某个地方有一个设计错误。

答: 暂无答案