gpt4 book ai didi

PHP 是否可以扩展命名空间以在 native 使用类之外的函数

转载 作者:行者123 更新时间:2023-12-04 17:00:32 25 4
gpt4 key购买 nike

好的,这是场景:

这是两个示例类。

  • 第一个定义了类名之外的一些函数。
  • 我希望第二个类能够像本地定义一样实现它。

  • 有几个函数我经常使用。

    因此,我需要它们尽可能短以提高可读性和写入速度。

    如果我可以将它们放在一个命名空间中并以某种方式扩展它,它也可以防止其他库中可能发生的冲突。

    基类
    namespace Core;

    class Base{
    ......
    }

    function set($array, $path=null, $value=null){
    .....
    }

    function get($array, $path=null){
    .....
    }

    二等舱
    namespace Core\Config;

    class Config{
    public function __construct($array){
    $conf = get($array, 'key1.key2.key3');
    .... do something with returned value ....
    }
    }

    最佳答案

    有人已经忍受了,但方式不对:

    <?php
    namespace Base {
    function get() {...}
    }

    namespace Base\Config {
    use \Base as B;

    class Config {
    public function __construct(...) {
    $something = B\get(...);
    }
    }
    }

    您可以导入和别名 Base命名空间并使用它。
    但是,您不能导入函数或常量(仅限类和接口(interface))

    引用: PHP.net

    另请注意,您不能在类名之外的类中定义函数。
    您正在做的是在一个文件中定义一个类和几个“独立”函数,但它们并没有以某种方式相关(尽管它们在同一个命名空间中)。

    关于PHP 是否可以扩展命名空间以在 native 使用类之外的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19766790/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com