Pan*_*ssa 3 php scope class declaration
我有一个文件classes.php,我在其中声明了一系列要在一系列页面中使用的类.然后,在一个页面中,我需要使用另一个类,它在一个单独的文件中声明.现在,这个单独的类使用classes.php文件中的一些类.
所以,在大多数页面中,我有:
[1]
<?php
require('classes.php');
[page code]
?>
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.该特定页面出现问题,该页面具有:
[2]
<?php
require('classes.php');
require('separate_class.php');
[page code]
?>
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为separate_class.php也需要classes.php.
如果我试试这个:
[3]
<?php
require('separate_class.php');
[page code]
?>
Run Code Online (Sandbox Code Playgroud)
然后它不起作用,因为现在这些类不可用于此页面,即使它们是在separate_class.php文件中声明的.
显而易见的解决方案似乎是在文件中包含单独的类classes.php,这是笨拙的,因为这个单独的类仅在这一系列页面中有意义,而文件classes.php包含通用类并在各种应用程序之间共享.
我怎么能以允许我保持[2]中所示的结构的方式来实现它,也就是说,将通用类与特定类分开,而这些类又需要那些通用类,同时仍然能够在页面中使用这些通用类?
你要使用require_once ()
编辑:如果这是你想要做的,你不能重新声明一个类。我不知道你的代码是什么样的,但也许继承是你正在寻找的?
编辑2:当我require 'classes.php'在separate_class.php 中有一个并且在您实际打开的脚本中有一个require 'classes.php'时,我只能重现您的错误。所以你有两个选择:
require(或require_once)在你的脚本中使用classes.php