Что означает обратный слеш перед вызовом функции?

Совершенно случайно смотрел чужой код и стало интересно для чего так делают, можете подсказать?

if (!\in_array(.....) {}

if (\count($order) > 0) {}

return \is_array($field) ?......
  • Вопрос задан
  • 1990 просмотров
Решения вопроса 3
syamskoy
@syamskoy
<?php

namespace myNameSpace;

function in_array($value, $arr)
{
    return 'Local function';
}
$arr = [1, 2, 3];
$value = 1;

var_dump(in_array($value, $arr));
var_dump(\in_array($value, $arr));

Результат:
string(14) "Local function"
bool(true)


Зачем это нужно? Только если в текущем пространстве имен объявленна одноименная функция как и в глобальном. И что бы обратиться к глобальной, используется слеш - глобальное пространство имен.
Ответ написан
Комментировать
MvcBox
@MvcBox
Software Engineer [C/C++/JS(for Node.js)/etc]
Комментировать
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SerafimArts
@SerafimArts
Senior Notepad Reader
Это оптимизация опкода PHP. Без обратного слеша в функциях в локальном неймспейсе вызывается 3 опкода, с обратным слешом - один.

P.S. https://veewee.github.io/blog/optimizing-php-perfo...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы