在PHP中,只有当它们在包含文件中时才会看到它们?在Java中,我可以在另一个文件中看到它们,而不在我当前的文件中包含该文件。在PHP中,查看任何给定类以将其包含在文件中的唯一方法是什么?所以我只是把我的课文件包括在内?
答案 0 :(得分:8)
在PHP中,只有当它们在包含文件中时才会出现?
是。但是,在PHP 5中,有一个新的Autoloading功能允许您在调用类名时构建包含文件的函数。这实际上可以自动初始化类。
手册中的简单示例(我稍微扩展了它)清楚地说明了它是如何工作的:
<?php
function __autoload($class_name) {
require_once $class_name . '.php';
}
$obj = new MyClass1(); // Autoloader will load "MyClass1.php"
$obj2 = new MyClass2(); // Autoloader will load "MyClass2.php"
?>
高级自动加载器,如Zend Framework的Zend_Loader_Autoloader(和标准PHP库的spl_autoload_register()
,欢呼@ircmaxell),甚至可以为不同的前缀添加不同的自动加载规则,允许从不同的前端加载库具有不同命名约定的目录。
答案 1 :(得分:1)
一般来说,是的。但是,请注意包含是级联的 - 在某种意义上说:如果你包含文件a.php,其中包含文件b.php,你现在可以在当前文件中看到文件b.php。
另外,PHP 5提供自动加载类,我建议你看一下:
答案 2 :(得分:0)
是 - PHP对使用代码未直接包含在文件中的代码没有任何可见性。
但是,许多开发人员选择使用PHP自动加载功能(http://php.net/manual/en/language.oop5.autoload),而不是包含(或首选方法 - 要求).php文件。 php)在您使用特定类时自动加载所需的文件。
答案 3 :(得分:0)
是的,要使文件中的某个类可用,必须包含该文件。
包含文件可以通过多种方式完成,使用以下功能:
include(filename);
include_once(filename) - which only includes the file if it's not already loaded
require(filename) - equal to include, except that the script will halt if file is not available
requier_once(filename)
文件也可以通过__autoload或spl_autoload_register函数自动加载。有关PHP.net上自动加载课程的详细信息。
答案 4 :(得分:-1)
是的,只有在include语句中才能访问其他php文件中的函数。 PHP是标准的过程语言。它从最高顺序开始工作,所以如果您希望执行类包括查看面向对象的PHP或将文件包含在php页面顶部。