在上一篇《PHP中die()和sleep()函數(shù)知道怎么用嗎?》中給大家簡單介紹了die()和sleep()函數(shù)的使用方法,感興趣的朋友可以去學(xué)習(xí)了解一下~
本文將告訴你PHP中require_once()為什么不好用!
不過在說它不好用之前,我們先開看看require_once()函數(shù)的定義和用法。
require_once()
函數(shù)是PHP中的內(nèi)置函數(shù),當(dāng)我們想要將一個PHP文件引入到另一個文件中時,例如當(dāng)我們需要在PHP腳本中多次引入一個文件時,它就非常有用了。它用于檢查文件是否被包含了不止一次,因為如果文件已經(jīng)被包含了,它會在運行腳本時忽略所有引入的內(nèi)容。
語法是“require_once('文件名和路徑');
”
require_once函數(shù)只接受一個參數(shù)'文件名和路徑',這是我們想要包含在PHP腳本中的文件。它是一個字符串類型參數(shù)。
返回值則是:如果找到了被調(diào)用的文件,并且如果文件已經(jīng)被包含,那么函數(shù)將返回布爾值True,如果文件不被包含,那么函數(shù)將包含文件并返回True。但是,如果沒有找到被調(diào)用的文件,則會出現(xiàn)致命錯誤,不會顯示輸出,執(zhí)行會停止,返回Boolean False。
PHP中的require_once()函數(shù)的使用示例:
文件名:test.php
代碼:
<?php // 文件內(nèi)容 echo "歡迎來到PHP中文網(wǎng)!"; ?>
文件名:index.php
代碼:
<?php // 包括文件 require_once('test.php'); require_once('test.php'); ?>
輸出:
歡迎來到PHP中文網(wǎng)!
注:require_once()函數(shù)會忽略第一個文件引入后的所有類似的引入。
下面我們就來講講為什么require_once()函數(shù)不好用?
有兩點:
1、require_once() 函數(shù)在包含所有文件的同時給服務(wù)器帶來了大量負(fù)載。
2、require_once() 函數(shù)的功能在存儲變量時在重復(fù)函數(shù)中使用時無法正常工作。
文件名:my_file.php
示例:
<?php // 文件內(nèi)容 $var = 'PHP'; ?>
文件名:check.php
<?php function func() { require_once('my_file.php'); return $var; } for($i = 1; $i <= 3; $i++) { echo func() . "<br>"; } ?>
輸出:
PHP
通過將上面示例中的 require_once() 函數(shù)替換為 require() 函數(shù),我們可以確保該變量$var在每次函數(shù)調(diào)用時都可用。
文件名:check2.php
<?php function func() { require('my_file.php'); return $var; } for($i = 1; $i <= 3; $i++) { echo func() . "<br>"; } ?>
輸出:
PHP PHP PHP
與 require() 或 include() 函數(shù)相比,require_once() 函數(shù)速度較慢,因為它在每次腳本調(diào)用函數(shù)時都要檢查文件是否已包含。
最后給大家推薦最新最全面的《PHP視頻教程》~快來學(xué)習(xí)吧!