Как создать функцию PHP, только видимую внутри файла?

Как создать функцию PHP, только видимую внутри файла? Не отображается внешнему файлу. Другими словами, что-то эквивалентное статической функции в C

Ответ 1

Невозможно фактически сделать функцию видимой только внутри файла. Но вы можете делать подобные вещи.

Например, создайте лямбда-функцию, назначьте ее переменной и отмените ее при выполнении:

$func = function(){ return "yay" };

$value = $func();

unset($func);

Это обеспечивается тем, что ваш script является процедурным.

Вы также можете играть с пространствами имен.


Лучше всего создать класс и сделать метод private

Ответ 2

Создайте класс и сделайте метод приватным.

<?php
class Foo
{
    private $bar = 'baz';

    public function doSomething()
    {
        return $this->bar = $this->doSomethingPrivate();
    }

    private function doSomethingPrivate()
    {
        return 'blah';
    }
}
?>

Ответ 3

Используйте namespace, чтобы применить свою собственную видимость.

В мире PHP пространства имен предназначены для решения двух проблем, которые авторы библиотек и приложений сталкиваются при создании повторно используемые текстовые элементы, такие как классы или функции:

  • Сопоставляйте имена кодов, создаваемых вами, и внутренние классы/функции PHP/константы или сторонние классы/функции/константы.
  • Возможность псевдонима (или сокращение) Extra_Long_Names, предназначенная для облегчения первой проблемы, улучшения читаемости исходного кода.