我是OOP编程的新手,正在创建一个设置页面并扩展各种抽象类。
我创建了两个类admin_setting和theme_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 */
}