PHP-只调用一次抽象类子方法


PHP - Calling abstract class child method only once?

我是OOP编程的新手,正在创建一个设置页面并扩展各种抽象类。

我创建了两个admin_settingtheme_admin_setting(扩展admin_setting),这两个类本身有两个扩展类:(非抽象)setting_newsseting_buttons功能非常相似,但页面上输出的字段形式不同。

然后,每个按钮/新闻项目都可以通过javascript在设置页面上添加和删除,然后在提交时将其全部保存到数据库中。

当添加一个新的按钮/新闻项(在JS中)时,由于表单字段不同,它会变得有点混乱,所以我想向脚本传递一些变量,使代码更干净。

当我想在脚本标记中向Javascript传递一些值,但只想在每个扩展类的每个实例中传递一次时,问题就出现了。

例如:

设置新闻:

<script>var news_array = <?php echo $news_array... </script>

设置按钮:

<script>var button_array = <?php echo $button_array... </script>

但每次类被实例化(每页大约10次),它显然都会输出脚本标记,我希望保持代码整洁,这样只做一次。

答案可能是创建另一个比theme_admin_setting更深的抽象类,其中包含计数器函数吗?

您可以在每个扩展类中都有public static $isCalled = false;,并且在调用函数时只执行

if (!self::$isCalled) {
    self::$isCalled = true;
    /* do your code */
}