【发布时间】:2016-11-01 00:43:25
【问题描述】:
我目前有这个 PHP 代码;
private function generateSpecialPage(){
require_once("/view/pages/special.php");
}
Special.php 是一个主要由 html 填充的 php 文件。我正在尝试从 special.php 中获取当前函数的名称。
如果我在 require 之前回显魔法常数 FUNCTION,它会回显“generateSpecialPage”,这就是我想要的。但是,如果我从 special.php 中回显 FUNCTION,它不会回显任何内容。
我能够使用 get_class($this) 从 special.php 中获取当前类的名称,我想知道当前方法是否有同样优雅的解决方案。
【问题讨论】:
-
更好的问题:为什么?你的代码不需要关心它运行的函数。如果是这样,你是在故意将未来的错误放入其中,并在代码库需要重定位或页面重写时阻止任何未来易于维护的代码库。
-
我更改了函数/页面的名称并删除了与我的问题无关的行,所以这可能会导致混淆。我有大约 15 个类似的其他函数,它们都使用“special.php”作为视图。它关心它运行在什么函数中的原因是因为“special.php”的每个实现都会导致页面略有不同,用户交互也略有不同。我不想为每个细微的变化创建一个新视图;管理起来将是一场噩梦。我宁愿使用函数名,也不愿在每个函数或类本身中声明/分配一个变量。
-
这听起来像“当你只有一把锤子时,每个问题看起来都像钉子”。不要在 15 个不同的函数中包含“special.php”,而是在每个函数中神奇地做不同的事情,让“special.php”be 成为一个函数,您可以包含该代码,然后调用为 @ 987654322@ 这样您就可以在一个单一、明显、易于记录、易于调试、易于维护的地方进行切换。
标签: php