【问题标题】:How do I import all functions in a file/name space?如何导入文件/命名空间中的所有函数?
【发布时间】:2017-03-10 15:01:03
【问题描述】:

我有一个文件

<?php namespace a1;
function a(){}
function b(){}
function c(){}

在另一个文件中,我想从第一个文件中导入所有函数,就好像它们在同一个命名空间中一样。现在,我必须这样做:

<php
include 'file1.php';
use a1\{a,b,c};

我希望这更加动态,因为我不断向文件 1 添加函数,该文件是我的引导文件的一部分。

【问题讨论】:

  • 您必须牢记一些要点。 namespaces 应始终与 autoloader 一起使用,您最好使用静态方法而不是单个函数定义一个类。然后你可以用新方法扩展类,但是use和以前一样。

标签: php namespaces alias php-7.1


【解决方案1】:

最好这样做:

<?php namespace a1;
class func {
   static function a(){}
   static function b(){}
   static function c(){}
}

<?php
include 'file1.php';#better register an autoloader
use a1\func as f;
f::a();

所以知道你可以添加越来越多的方法,但没有必要更新use。 您可以将class func {} 包裹在您的函数周围并添加到所有static 中,您就完成了。

【讨论】:

    【解决方案2】:

    您可以使用父命名空间:

    namespace a1 {
        function a(){echo 'yello!';}
        function b(){}
        function c(){}
    }
    
    namespace a2 {
        use a1;
    
        echo a1\a();
    }
    

    输出:

    yello!


    为你举例:

    <php
    include 'file1.php';
    use a1;
    
    // call any function under the namespace a1;
    
    var_dump(a1\a());
    

    【讨论】:

      猜你喜欢
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-25
      • 2012-05-28
      • 2011-09-09
      • 1970-01-01
      相关资源
      最近更新 更多