1
我試圖自動加載了一堆輔助函數命名空間:自動裝填在PHP的整體命名空間(功能,而不是一類)
<?php
namespace App\Str {
function contains($haystack, $needles)
{
foreach ((array)$needles as $needle) {
if ($needle !== '' && mb_strpos($haystack, $needle) !== false) {
return true;
}
}
return false;
}
function starts_with($haystack, $needles)
{
foreach ((array) $needles as $needle) {
if ($needle !== '' && substr($haystack, 0, strlen($needle)) === (string) $needle) {
return true;
}
}
return false;
}
}
PSR-4自動加載作曲家這裏不幫助:
Call to undefined function App\Str\starts_with()
我明白知道,我不能(懶洋洋)自動加載功能,以及我給的建議,讓靜態函數的類,但我更喜歡函數式編程,我想先調查其他選項。例如,我可以以某種方式(懶洋洋地)自動加載整個名稱空間本身嗎?我想通過以下方式來使用此命名空間:
use App\Str as Str;
$test = Str\starts_with('test', 't');
我想以某種方式指定作曲家,如果它看到App\Str
命名空間,它應該懶洋洋地要求文件app/Str.php
,真的不知道怎麼作曲家的作品,但會不會有這樣的事情?
如果您對Classes不熟悉,並且喜歡函數式編程,那麼爲什麼不使用類作爲包裝器,並將所有函數作爲* static *函數放入該包裝器中。如果你這樣做,你將不需要實例化該類的新對象來使用它的函數。你可以做'ClassName :: myFunction()',因爲隨着代碼的增長,功能代碼將很難維護。 –