簡體   English   中英

從 PHP 命名空間中定義全局函數

[英]Define global function from within PHP namespace

是否可以從 PHP 命名空間中(在具有命名空間聲明的文件中)定義全局函數? 如果是這樣,如何?

<?php
namespace my_module;

# bunch of namespaced functions
# ...
# then I want to define a global function my_module()
# that is an alias to my_module\mymodule()

這是可能的,但除了糟糕的設計之外,您必須將代碼在每個名稱空間的方括號中,並且無法使用namespace my_module; 相反,它必須是namespace my_module { ... }

例子:

namespace my_module {

    function module_function()
    {
        // code
    }
}

namespace {
    // global namespace.

    function my_module()
    {
        // call your namespaced code
    }
}

'included' 文件中定義的函數具有全局作用域。

所以(我還沒有驗證這一點)你可以把你的函數聲明放在一個小文件中,並包含它。

不完全是問題中的設想。

另一種方法是創建一個局部函數,並在其中使用“global”關鍵字,並為全局變量分配一個閉包——然后可以在任何你想要的地方“作為函數”使用它。 我當然已經為普通變量這樣做了,我認為沒有理由它不適用於閉包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM