国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table of Contents
php自動加載方式集合,php加載方式集合
您可能感興趣的文章:
Home Backend Development PHP Tutorial PHP automatic loading method collection, PHP loading method collection_PHP tutorial

PHP automatic loading method collection, PHP loading method collection_PHP tutorial

Jul 12, 2016 am 08:55 AM
php autoload

php自動加載方式集合,php加載方式集合

php加載文件方式:
1、include,include_once,requice,requice_one常規(guī)加載
2、__autoload()
3、spl_autoload_register()

常規(guī)加載方式
假設(shè)我們有一個類文件A.php,里面定義了一個名字為A的類:

<&#63;php  
class A {  
  public function __construct() {  
    echo 'Got it.';  
  }  
}

然后我們有一個index.php需要用到這個類A,常規(guī)的寫法就是

<&#63;php  
  require('A.php');  
  $a = new A();

但是有一個問題就是,假如我們的index.php需要包含的不只是類A,而是需要很多類,這樣子就必須寫很多行require語句,有時候也會讓人覺得不爽。

__autoload()自動加載
不過在php5之后的版本,我們就不再需要這樣做了。
在php5中,試圖使用尚未定義的類時會自動調(diào)用__autoload函數(shù),所以我們可以通過編寫__autoload函數(shù)來讓php自動加載類,而不必寫一個長長的包含文件列表。

例如在上面那個例子中,index.php可以這樣寫:

<&#63;php  
function __autoload($class){  
  $file = $class . '.php';  
  if (is_file($file)) {  
    require_once($file);  
  }  
}  
$a = new A();

當然上面只是最簡單的示范,__autoload只是去include_path尋找類文件并加載,我們可以根據(jù)自己的需要定義__autoload加載類的規(guī)則。注意:由于__autoload()是個函數(shù),只能存在一次。

spl_autoload_register()自動加載
但現(xiàn)在問題來了,如果在一個系統(tǒng)的實現(xiàn)中,如果需要使用很多其它的類庫,這些類庫可能是由不同的開發(fā)人員編寫的,其類名與實際的磁盤文件的映射規(guī)則不盡相同。這時如果要實現(xiàn)類庫文件的自動加載,就必須在__autoload()函數(shù)中將所有的映射規(guī)則全部實現(xiàn),這樣的話__autoload()函數(shù)有可能 會非常復雜,甚至無法實現(xiàn)。最后可能會導致__autoload()函數(shù)十分臃腫,這時即便能夠?qū)崿F(xiàn),也會給將來的維護和系統(tǒng)效率帶來很大的負面影響。在這種情況下,難道就沒有更簡單清晰的解決辦法了吧?答案當然是:NO!

spl_autoload_register() 滿足了此類需求。 它實際上創(chuàng)建了 autoload 函數(shù)的隊列,按定義時的順序逐個執(zhí)行。相比之下, __autoload() 只可以定義一次。

bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )
我們繼續(xù)改寫上面那個例子:

<&#63;php  
function loader($class){  
  $file = $class . '.php';  
  if (is_file($file)) {  
    require_once($file);  
  }  
}  
spl_autoload_register('loader');  
$a = new A();

或者直接使用匿名函數(shù):

<&#63;php  
 
spl_autoload_register(function($file){
  $file = $class . '.php';  
  if (is_file($file)) {  
    require_once($file);  
  }
});  
$a = new A();

這樣子也是可以正常運行的,這時候php在尋找類的時候就沒有調(diào)用__autoload而是調(diào)用我們自己定義的函數(shù)loader了。同樣的道理,下面這種寫法也是可以的:

<&#63;php  
class Loader {  
  public static function loadClass($class){  
    $file = $class . '.php';  
    if (is_file($file)) {  
      require_once($file);  
    }  
  }  
}  
spl_autoload_register(array('Loader', 'loadClass')); 
//spl_autoload_register(array(__CLASS__, 'loadClass')); 
//spl_autoload_register(array($this, 'loadClass')); 
$a = new A();

更多示例
autoload.php

<&#63;php

define('SDK_PATH', __DIR__);

require_once SDK_PATH . '/common/functions.php';
require_once SDK_PATH . '/common/config.php';

spl_autoload_register(function ($class) {
  if (false !== stripos($class, 'YJC\Wechat')) {
    require_once __DIR__ . '/' . str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 10)) . '.php';
  }
});


/*
function __autoload($class){
  if (false !== stripos($class, 'YJC\Wechat')) {
    require_once __DIR__ . '/' . str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 10)) . '.php';
  }
}
*/

建議入口文件里養(yǎng)成定義絕對地址SDK_PATH的習慣,這樣require不會出錯。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。

您可能感興趣的文章:

  • php基礎(chǔ)知識:類與對象(2) 自動加載對象
  • php面向?qū)ο笕ヂ?(十七) 自動加載類
  • php自動加載的兩種實現(xiàn)方法
  • PHP的autoload自動加載機制使用說明
  • PHP spl_autoload_register實現(xiàn)自動加載研究
  • 說說PHP的autoLoad自動加載機制
  • PHP autoload與spl_autoload自動加載機制的深入理解
  • PHP管理依賴(dependency)關(guān)系工具 Composer的自動加載(autoload)

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1117027.htmlTechArticlephp自動加載方式集合,php加載方式集合 php加載文件方式: 1、include,include_once,requice,requice_one常規(guī)加載 2、__autoload() 3、spl_autoload_register() 常...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How do I stay up-to-date with the latest PHP developments and best practices? How do I stay up-to-date with the latest PHP developments and best practices? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

What is PHP, and why is it used for web development? What is PHP, and why is it used for web development? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

How to set PHP time zone? How to set PHP time zone? Jun 25, 2025 am 01:00 AM

TosettherighttimezoneinPHP,usedate_default_timezone_set()functionatthestartofyourscriptwithavalididentifiersuchas'America/New_York'.1.Usedate_default_timezone_set()beforeanydate/timefunctions.2.Alternatively,configurethephp.inifilebysettingdate.timez

How do I validate user input in PHP to ensure it meets certain criteria? How do I validate user input in PHP to ensure it meets certain criteria? Jun 22, 2025 am 01:00 AM

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

What is data serialization in PHP (serialize(), unserialize())? What is data serialization in PHP (serialize(), unserialize())? Jun 22, 2025 am 01:03 AM

ThePhpfunctionSerialize () andunserialize () AreusedtoconvertcomplexdaTastructdestoresintostoraSandaBackagain.1.Serialize () c OnvertsdatalikecarraysorobjectsraystringcontainingTypeandstructureinformation.2.unserialize () Reconstruct theoriginalatataprom

How do I embed PHP code in an HTML file? How do I embed PHP code in an HTML file? Jun 22, 2025 am 01:00 AM

You can embed PHP code into HTML files, but make sure that the file has an extension of .php so that the server can parse it correctly. Use standard tags to wrap PHP code, insert dynamic content anywhere in HTML. In addition, you can switch PHP and HTML multiple times in the same file to realize dynamic functions such as conditional rendering. Be sure to pay attention to the server configuration and syntax correctness to avoid problems caused by short labels, quotation mark errors or omitted end labels.

What are the best practices for writing clean and maintainable PHP code? What are the best practices for writing clean and maintainable PHP code? Jun 24, 2025 am 12:53 AM

The key to writing clean and easy-to-maintain PHP code lies in clear naming, following standards, reasonable structure, making good use of comments and testability. 1. Use clear variables, functions and class names, such as $userData and calculateTotalPrice(); 2. Follow the PSR-12 standard unified code style; 3. Split the code structure according to responsibilities, and organize it using MVC or Laravel-style catalogs; 4. Avoid noodles-style code and split the logic into small functions with a single responsibility; 5. Add comments at key points and write interface documents to clarify parameters, return values ??and exceptions; 6. Improve testability, adopt dependency injection, reduce global state and static methods. These practices improve code quality, collaboration efficiency and post-maintenance ease.

How do I execute SQL queries using PHP? How do I execute SQL queries using PHP? Jun 24, 2025 am 12:54 AM

Yes,youcanrunSQLqueriesusingPHP,andtheprocessinvolveschoosingadatabaseextension,connectingtothedatabase,executingqueriessafely,andclosingconnectionswhendone.Todothis,firstchoosebetweenMySQLiorPDO,withPDObeingmoreflexibleduetosupportingmultipledatabas

See all articles