Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建仅在文件中可见的PHP函数?_Php - Fatal编程技术网

如何创建仅在文件中可见的PHP函数?

如何创建仅在文件中可见的PHP函数?,php,Php,如何创建仅在文件中可见的PHP函数?外部文件不可见。换句话说,与C中的静态函数等价的东西实际上无法使函数仅在文件中可见。但是,你也可以做类似的事情 例如,创建lambda函数,将其分配给变量,并在完成以下操作时取消设置: $func = function(){ return "yay" }; $value = $func(); unset($func); 前提是脚本是过程性的 您还可以使用名称空间 最好的办法是创建一个类,并将方法设置为私有创建一个类并将方法设置为私有 <?php

如何创建仅在文件中可见的PHP函数?外部文件不可见。换句话说,与C中的静态函数等价的东西实际上无法使函数仅在文件中可见。但是,你也可以做类似的事情

例如,创建lambda函数,将其分配给变量,并在完成以下操作时取消设置:

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

$value = $func();

unset($func);
前提是脚本是过程性的

您还可以使用名称空间



最好的办法是创建一个类,并将方法设置为私有

创建一个类并将方法设置为私有

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

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

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

使用,以应用您自己的可见性

在PHP世界中,名称空间设计用于解决两个问题: 库和应用程序的作者在创建 可重用的代码元素,如类或函数:

  • 创建的代码与内部PHP类/函数/常量或第三方类/函数/常量之间的名称冲突
  • 能够别名(或缩短)超长名称,旨在缓解第一个问题,提高源代码的可读性

  • 闭包/lambda函数(注意,这些函数至少需要PHP5.3)可能是您唯一的选择,除了重新考虑您需要对其他文件隐藏函数之外。您可能实际上不需要这样做。当您在PHP上包含文件时,就好像您将它们附加在一起,在C/C++中,您正在“导入”变量/函数/类。