echo
это не функция, это языковая конструкция. У меня ничего нет для этого.
Но вызовы функций, подобные time()
, могут быть переопределены, поскольку Политика восстановления пространства имен PHP-5.3 :
Для функций […] PHP вернется к глобальным функциям […], если функция пространства имен […] не существует.
например. для неквалифицированного вызова функции time()
в неглобальном пространстве имен foo
вы можете указать foo\time()
.
Лично я использую это, чтобы издеваться, например. time()
для модульного теста. Я опубликовал эти издевательства в библиотеке PHP-Mock :
namespace foo;
use phpmock\phpunit\PHPMock;
class FooTest extends \PHPUnit_Framework_TestCase
{
use PHPMock;
public function testBar()
{
$time = $this->getFunctionMock(__NAMESPACE__, "time");
$time->expects($this->once())->willReturn(3);
$this->assertEquals(3, time());
}
}