0
我想用命名空間來覆蓋類中預定義功能覆蓋類中的預定義函數。
// one.class.php
class One{
public function __construct($str){
echo strtolower($str);
}
}
好調用,這將導致
new One("mIxEd"); // mixed
我想重寫用strtolower函數內部類一
我試圖做到這一點
// blabla.class.php
namespace blabla;
function strtolower($str){
return strtoupper($str);
}
class One extends \One{};
那好吧,當我把它放在一起
// script.php
require_once("one.class.php");
require_once("blabla.class.php");
new One("mIxEd"); // mixed
new blabla\One("mIxEd"); // mixed
它仍然是小寫的輸出,所以我不重寫裏面一類用strtolower。
我流浪,如果是甚至可能... 感謝您的幫助!
謝謝,但不是我想要做的。我試圖覆蓋預定義的功能 – nulll
對不起。我不認爲有一種方法可以覆蓋它來強制基類調用你的覆蓋。正如你所看到的,你需要在命名空間類中明確地調用它。可能更好的方法是將strtolower抽象成一個成員函數,並覆蓋在命名空間類中執行其他操作。 – dgross