在PHP中,只有在包含文件中才能看到的類?在Java中,我可以在另一個文件中看到它們,而不在當前文件中包含該文件。在PHP中,看到任何給定的類將其包含在文件中的唯一方法是?所以我只是把我的課堂文件包括在內?PHP如何看待類 - 僅在包含文件中?
回答
在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)使它甚至可以爲不同的前綴添加不同的自動加載規則,允許使用不同的命名約定從不同的目錄加載庫。
SPL的自動加載函數['spl_autoload_register'](http://us.php.net/manual/en/function.spl-autoload-register.php)...您可以定義任意數量的自動加載函數。 PHP將繼續嘗試列表中的下一個,直到它找到該類,或者以類未找到的錯誤結束。這是你不應該在自動加載功能中出錯的原因之一(讓任何已註冊的人都有機會)。哦,沒有理由對'class_exists'進行檢查(除非是爲了防止爲已經定義的類手動調用它)... – ircmaxell 2010-09-30 19:00:00
@ircmaxell好點。你當然是對的,我沒有想過。代碼固定。 – 2010-09-30 19:03:05
如果您害怕手動呼叫,請將其設爲班級,並將'load'方法設爲私人。這樣你就需要在類中調用'spl_autoload_register',並且不能在外面手動調用它(因爲它是私有的,所以你只需要擔心就不會自己調用它);否則+1就可以獲得更好的信息。 .. – ircmaxell 2010-09-30 19:05:27
是的只有在包含語句中才能訪問其他php文件中的函數。 PHP是標準的程序語言。它從最上面的命令開始工作,所以如果你希望執行像包含面向對象的PHP一樣的類,或者將文件包含在php頁面的頂部。
一般來說,是的。但是,請注意包含級聯 - 意思是:如果您包含包含文件b.php的文件a.php,現在可以在當前文件中看到文件b.php。
此外,PHP 5提供自動加載對象,我建議你看看:
是 - PHP沒有任何可視化代碼並沒有在文件中直接包含使用代碼。但是,許多開發人員選擇使用PHP自動加載功能(http://php.net/manual/en/language.oop5.autoload),而不是包含(或首選方法 - 需要).php文件,因此許多開發人員都選擇使用PHP自動加載功能(http://php.net/manual/zh-cn/language.oop5.autoload) .php)在您使用特定類時自動加載所需的文件。
是的,要使文件中的類可用,必須包含該文件。
包括可以通過多種方式來實現一個文件,或者使用以下功能:
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自動加載類的信息。
- 1. 僅包含一個PHP類文件
- 2. 如何在Bootstrap中包含文件* .php?
- 3. 如何在PHP中包含文件?
- 4. PHP類和包含文件
- 5. 包含文件到PHP類
- 6. 如何看待我的文件名在java中包含的字符串?
- 7. 如何從上述文件夾中包含PHP類文件
- 8. 如何通過僅包含PEAR.php文件來包含PEAR包?
- 9. 如何在php文件中包含php文件
- 10. 如何在PHP中包含已包含的文件中的文件?
- 11. 如何在yii2中包含新的php文件/類?
- 12. 包含許多文件或僅包含一個文件
- 13. 如何查看包含的SSI文件
- 14. php包含文件中的類
- 15. PHP-如何在Wordpress中包含Codeingiter類
- 16. 如何僅包含來自php文件的函數?
- 17. PHP僅包含外部類一次
- 18. 如何在php會話文件中包含jQuery文件?
- 19. 在Visual Studio中搜索時僅包含某些文件類型
- 20. 包含控制器在php代碼中的查看文件
- 21. 如何防止requirejs包含所有源文件並僅包含模塊文件?
- 22. 如何在不包含php文件的情況下調用類?
- 23. 如何在dll中包含待導出類中的struct?
- 24. 包含PHP中的文件
- 25. `$ _SERVER ['SCRIPT_NAME']`包含REST資源而不僅僅是php文件
- 26. 如何查看哪些文件包含在webpack構建中
- 27. PHP文件包含
- 28. PHP:包含文件
- 29. 僅在iPad上包含JS文件(Ionic)
- 30. 如何在WordPress的php模板中包含PHP文件?
PHP 5中的自動加載功能是很好的解決方案。 – JustinKaz 2010-09-30 18:38:55