You can use the fallback policy to provide mocks for built-in functions like time(). You therefore have to call those functions unqualified:
<?php
namespace foo;
function time() {
return 1234;
}
assert (1234 == time());
?>
However there's a restriction that you have to define the mock function before the first usage in the tested class method. This is documented in Bug #68541.
You can find the mock library php-mock at GitHub.Враќање на глобалниот простор
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Враќање на глобалниот простор
Референца за `language.namespaces.fallback.php` со подобрена типографија и навигација.
Користење на именски простори: враќање на глобалниот простор за функции и константи
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Во именски простор, кога PHP наидува на неквалификувано Име во контекст на име на класа, функција или константа, ги решава со различни приоритети. Имињата на класите секогаш се решаваат до името на тековниот именски простор. Така, за пристап до внатрешни или кориснички класи без именски простор, мора да се повикате на нив со нивното целосно квалификувано Име како во:
Пример #1 Пристап до глобални класи во именски простор
<?php
namespace A\B\C;
class Exception extends \Exception {}
$a = new Exception('hi'); // $a is an object of class A\B\C\Exception
$b = new \Exception('hi'); // $b is an object of class Exception
$c = new ArrayObject; // fatal error, class A\B\C\ArrayObject not found
?>За функции и константи, PHP ќе се врати на глобални функции или константи ако не постои функција или константа во именскиот простор.
Пример #2 Враќање на глобални функции/константи во именски простор
<?php
namespace A\B\C;
const E_ERROR = 45;
function strlen($str)
{
return \strlen($str) - 1;
}
echo E_ERROR, "\n"; // prints "45"
echo INI_ALL, "\n"; // prints "7" - falls back to global INI_ALL
echo strlen('hi'), "\n"; // prints "1"
if (is_array('hi')) { // prints "is not array"
echo "is array\n";
} else {
echo "is not array\n";
}
?>