首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

调用在没有前缀的另一个命名空间中定义的PHP函数

在PHP中,调用另一个命名空间中的函数,需要使用完全限定的函数名,包括命名空间前缀。如果你想在没有前缀的情况下调用该函数,可以使用use语句将该函数引入当前命名空间。

例如,假设你想调用\AnotherNamespace\anotherFunction()函数,可以在当前命名空间中使用以下代码:

代码语言:php
复制
use function AnotherNamespace\anotherFunction;

// 调用函数
anotherFunction();

这样,你就可以在没有前缀的情况下调用\AnotherNamespace\anotherFunction()函数了。

需要注意的是,如果两个命名空间中存在同名的函数,你需要使用完全限定的函数名来调用其中一个函数,以避免歧义。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

详细分析PHP 命名空间(namespace)

警告:如果命名间中函数或常量未定义,则该非限定函数名称或常量名称会被解析为全局函数名称或常量名称。...必须使用完全限定名称(包括命名空间前缀类名称)。注意因为在动态类名称、函数名称或常量名称中,限定名称和完全限定名称没有区别,因此其前导反斜杠是不必要。 动态访问命名空间元素 <?...常量__NAMESPACE__值是包含当前命名空间名称字符串。在全局,不包括在任何命名间中代码,它包含一个字符串。 __NAMESPACE__ 示例, 在命名间中代码 <?...全局空间 如果没有定义任何命名空间,所有的类与函数定义都是在全局空间,与 PHP 引入命名空间概念前一样。...// 如果未发现,则尝试自动装载类 "F" // 调用另一个命名间中静态方法或命名空间函数 B\foo(); // 调用命名空间 "A\B" 中函数 "foo" B::foo(); /

1K20

PHP命名空间(Namespace)初探

命名空间一个最明确目的就是解决重名问题,PHP中不允许两个函数或者类出现相同名字,否则会产生一个致命错误。这种情况下只要避免命名重复就可以解决,最常见一种做法是约定一个前缀。...另一个解决方法可以考虑使用命名空间。 注明: 本文提到常量:PHP5.3开始const关键字可以用在外部。...> 复制代码 而且,子空间还可以定义很多层次,比如说 Blog\Article\Archives\Date 公共空间 我有一个common_inc.php脚本文件,里面有一些好用函数和类: <?...如果这个脚本里没有定义其它命名空间,它元素就始终处于公共空间中: <?php namespace Blog\Article; //引入脚本文件 include '....> 复制代码 总结 我对PHP命名空间刚刚接触,也不能随便给一些没有实践建议。我个人认为命名空间作用和功能都很强大,如果要写插件或者通用库时候再也不用担心重名问题。

1.7K10
  • PHP 命名空间原理与用法详解

    警告:如果命名间中函数或常量未定义,则该非限定函数名称或常量名称会被解析为全局函数名称或常量名称。...定义命名空间 虽然任意合法PHP代码都可以包含在命名间中,但只有以下类型代码受命名空间影响, 它们是: 类(包括抽象类和traits) 接口 函数 常量 命名空间通过关键字namespace...全局空间 如果没有定义任何命名空间,所有的类与函数定义都是在全局空间,与 PHP 引入命名空间概念前一样。...使用命名空间:后备全局函数/常量 在一个命名间中,当 PHP 遇到一个非限定类、函数或常量名称时,它使用不同优先策略来解析该名称。 类名称总是解析到当前命名间中名称。...对于函数和常量来说,如果当前命名间中不存在该函数或常量,PHP 会退而使用全局空间中函数或常量。 <?

    91820

    PHP命名空间学习笔记

    {} in错误,对于全局代码,那就放在全局命名间中,类似这样namespace { } 使用命名空间 PHP 命名间中元素可以通过三种方式引用,以类名为例: 非限定名称,或不包含前缀类名称...如果使用 foo 代码是全局,不包含在任何命名间中代码,则 foo 会被解析为foo。 警告:如果命名间中函数或常量未定义,则该非限定函数名称或常量名称会被解析为全局函数名称或常量名称。...NAMESPACE 常量 常量__NAMESPACE__值是包含当前命名空间名称字符串。在全局,不包括在任何命名间中代码,它包含一个字符串。...为了简化操作,PHP还支持在一行中使用多个use语句。 如果没有定义任何命名空间,所有的类与函数定义都是在全局空间,与 PHP 引入命名空间概念前一样。...在名称前加上前缀  表示该名称是全局空间中名称,即使该名称位于其它命名间中时也是如此。 参考资料: 1、PHP 命名空间

    1.6K20

    PHP学习笔记(二)——行云博客

    7.1定义命名空间 将全局命名间中代码与命名间中代码组合在一起,只能使用大括号形式语法。...7.3命名空间使用 PHP 命名间中类名可以通过三种方式引用: 非限定名称,或不包含前缀类名称 限定名称,或包含前缀名称 完全限定名称,或包含了全局前缀操作符名称 7.7使用命名空间:后备全局函数/常量 对于函数和常量来说,如果当前命名间中不存在该函数或常量,PHP 会退而使用全局空间中函数或常量。 <?...,则尝试自动装载类 "F" // 调用另一个命名间中静态方法或命名空间函数 B\foo(); // 调用命名空间 "A\B" 中函数 "foo" B::foo(); // 调用命名空间

    3.7K30

    php代码抄写笔记

    > 必须使用完全限定名称(包括命名空间前缀类名称)。注意因为在动态类名称、函数名称或常量名称中,限定名称和完全限定名称没有区别,因此其前导反斜杠是不必要。 动态访问命名空间元素 <?...常量__NAMESPACE__值是包含当前命名空间名称字符串。在全局,不包括在任何命名间中代码,它包含一个字符串。 NAMESPACE 示例, 在命名间中代码 ---- 全局空间 如果没有定义任何命名空间,所有的类与函数定义都是在全局空间,与 PHP 引入命名空间概念前一样。...在名称前加上前缀 \ 表示该名称是全局空间中名称,即使该名称位于其它命名间中时也是如此。 使用全局空间说明 <?...,则尝试自动装载类 "F" // 调用另一个命名间中静态方法或命名空间函数 B\foo(); // 调用命名空间 "A\B" 中函数 "foo" B::foo(); // 调用命名空间

    4.1K10

    php命名空间详解

    这个原理应用到程序设计领域就是命名空间概念。 2、命名空间解决问题 2.1、用户编写代码与PHP内部类/函数/常量或第三方类/函数/常量之间名字冲突。...3、定义命名空间 3.1、虽然任意合法PHP代码都可以包含在命名间中,但只有三种类型代码受命名空间影响,它们是:类,函数和常量。 3.2、命名空间通过关键字namespace 来声明。...如果使用 foo 代码是全局,不包含在任何命名间中代码,则 foo 会被解析为foo。 警告:如果命名间中函数或常量未定义,则该非限定函数名称或常量名称会被解析为全局函数名称或常量名称。...6.4、名称解析规则如下: 6.4.1、对完全限定名称函数,类和常量用在编译时解析。例如 new \A\B 解析为类 A\B。...6.4.3、在命名空间内部,所有的没有根据导入规则转换限定名称均会在其前面加上当前命名空间名称。

    2.5K80

    PHP命名空间(namespace)原理与用法详解

    php // 定义代码在 'MyProject' 命名间中 namespace MyProject; // ... 代码 ... 我们也可以在同一个文件中定义不同命名空间代码,如下: <?...咱们再来看下PHP 命名间中类名引用方式: 非限定名称,或不包含前缀类名称,例如 $a=new foo(); 或 foo::staticmethod();。...警告:如果命名间中函数或常量未定义,则该非限定函数名称或常量名称会被解析为全局函数名称或常量名称。...我们如果要将上述代码转换到命名间中,并且动态访问元素,就必须使用完全限定名称(包括命名空间前缀类名称)。...注意因为在动态类名称、函数名称或常量名称中,限定名称和完全限定名称没有区别,因此其前导反斜杠是不必要。如下: <?

    1.3K51

    秒懂php命名空间

    命名空间,主要解决了3个麻烦: 1.用户编写代码与PHP内部类/函数/常量或第三方类/函数/常量之间名字冲突。...2.为了缓解麻烦1,通常编写各种class时会使用较长类名或为实现不同功能class添加名称前缀(或后缀)。...在全局,不包括在任何命名间中代码,它包含一个字符串。” 接着做示例: Demo.php不做变动,改动index.php文件,如下: <?...在Demo.php定义了一个namespace,也就是命名空间后,接着定义了Demo类,然后这个Demo类就被归并到了DemoNameSpace命名间中去了,那么要调用这个Demo类时,自然要先调用这个...再放一下上面那三个麻烦: 1.用户编写代码与PHP内部类/函数/常量或第三方类/函数/常量之间名字冲突。

    1.4K20

    PHP进阶学习之命名空间基本用法分析

    一个标识符可在多个命名间中定义,它在不同命名间中含义是互不相干。这样,在一个新命名间中定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他命名间中。...在PHP中也存在命名空间用法,由它控制可见范围这个标识符一般指就是类和函数。 一、PHP命名空间基础 从广义上来说,命名空间是一种封装事物方法。在很多地方都可以见到这种抽象概念。...所以根据官方所说,在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用代码如类或函数时碰到两类问题: 1、用户编写代码与PHP内部类/函数/常量或第三方类/函数/常量之间名字冲突。...看起来很复杂,其实规范要点就是,命名空间路径要与当前文件路径相对应,这样规范了所有项目命名空间定义准则,虽然PHP官方没有 强制规定,但如今许多开源项目都已经约定俗成地使用了,这种规范便于查找命名空间下类所在路径...例如对函数foo()调用是这样解析: (1)在当前命名间中查找名为A\B\foo()函数 (2)尝试查找并调用全局(global)空间中函数foo()。

    58920

    开心档之C++ 命名空间

    同样情况也出现在 C++ 应用程序中。例如,您可能会写一个名为 xyz() 函数,在另一个可用库中也存在一个相同函数 xyz()。这样,编译器就无法判断您所使用是哪一个 xyz() 函数。..." << endl; } } int main () { // 调用第一个命名间中函数 first_space::func(); // 调用第二个命名间中函数...例如,如果您只打算使用 std 命名间中 cout 部分,您可以使用如下语句: using std::cout; 随后代码中,在使用 cout 时就可以不用加上命名空间名称作为前缀,但是 std...所以,如果命名间中某个组成部分需要请求定义另一个文件中名称,则仍然需要声明该名称。...下面的命名空间定义可以是定义一个新命名空间,也可以是为已有的命名空间增加新元素: namespace namespace_name { // 代码声明 } 嵌套命名空间 命名空间可以嵌套,您可以在一个命名间中定义另一个命名空间

    32450

    开心档之C++ 命名空间

    同样情况也出现在 C++ 应用程序中。例如,您可能会写一个名为 xyz() 函数,在另一个可用库中也存在一个相同函数 xyz()。这样,编译器就无法判断您所使用是哪一个 xyz() 函数。..." << endl; } } int main () { // 调用第一个命名间中函数 first_space::func(); // 调用第二个命名间中函数...例如,如果您只打算使用 std 命名间中 cout 部分,您可以使用如下语句: using std::cout; 随后代码中,在使用 cout 时就可以不用加上命名空间名称作为前缀,但是 std...所以,如果命名间中某个组成部分需要请求定义另一个文件中名称,则仍然需要声明该名称。...下面的命名空间定义可以是定义一个新命名空间,也可以是为已有的命名空间增加新元素: namespace namespace_name { // 代码声明 } 嵌套命名空间 命名空间可以嵌套,您可以在一个命名间中定义另一个命名空间

    37400

    Laravel 路由使用进阶

    常言道「物以类聚,人以群分」,同样,在日常开发中,我们通常会将具有某些共同特征路由进行分组,这些特征包括是否需要认证、是否具有共同路由前缀或者子域名、以及是否具有相同控制器命名空间等,显然,对路由按照共同特征进行分组后可以避免重复为某些路由定义相同路由特征...(第一个参数是数组),所以这样路由分组其实并没有什么意义,下面我们来介绍一些常见共享特征设置。...,感兴趣同学可以去看下源码是如何实现:vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php,下面路径前缀、子域名和命名空间链式调用原理也是一样...4、子命名空间 以控制器方式定义路由时候,当我们没有显式指定控制器命名空间时,默认命名空间是 App\Http\Controllers(在 app/Providers/RouteServiceProvider.php...中设置),如果某些控制器位于这个命名空间下命名间中,该如何设置分组规则呢?

    1.5K20

    -利用配置文件开始工作

    访问配置文件 创建配置文件 针对不同环境 嵌套变量 命名间中变量 将环境变量并入配置中 以数组方式调用环境变量 注册器 访问配置文件 我们可以通过创建一个新配置类实例或者使用config函数,...namespace(命名空间),框架会在所有可用、已被定义命名间中搜寻所需文件,就如同 /app/Config/ 一样。...创建一个类似于 .env.example ,其中包含了所有我们项目所需,仅设置了配置项值或默认值模板文件,是一个不错方法。...}/tmp" 命名间中变量 有时候,我们会遇到多个变量具有相同名字情况。...当这种情况发生时,系统将没有办法获知这个变量所对应的确切值。 我们可以通过将这些变量放入”命名空间“中,来放置这一情况出现。 在配置文件中,点号(.)通常被用来表示一个变量是命名空间变量。

    1.2K20

    C++入门基础

    2.2namespace定义 定义命名空间,需要使用到namespace关键字,后面跟命名空间名字,然后接一对{}即可,{}中即为命名空间成员,花括号外面没有分号。...命名间中可以定义变量/函数/类型等。 namespace本质是定义出一个域,这个域跟全局域各自独立,不同域可以定义同名变量,所以下面的rand不在冲突了。...项目工程中多文件中定义同名namespace会认为是一个namespace,不会冲突。 C++标准库都放在一个叫std(standard)命名间中。...所以我们要使用命名间中定义变量/函数,有三种方式: 1.指定命名空间访问,项目中推荐这种方式。...不论采取何种定义,在使用指针时,都不可避免会遇到一些麻烦,本想通过f(NULL)调用指针版本 f(int*)函数,但是由于NULL被定义成0,调用了f(int x),因此与程序初衷相悖。

    9910

    PHP 命名空间和自动加载原理与用法实例分析

    分享给大家供大家参考,具体如下: PHP 命名空间 php5.3 之后引入了命名空间特性,从本质上讲,命名空间就是一个容器,你可以将类、函数和变量放在其中,在命名间中,你可以无条件地访问这些项,在命名空间之外...,PHP还支持声明嵌套命名空间,如 namespace com\getinstance\util; 使用命名空间 在本命名空间内部可以直接调用命名间中类或函数、变量, 因为我已经位于命名间中了,...但是如果每次调用命名空间都需要写这么长一串前缀是不合理PHP 可以使用 use 关键词为当前命名间中其他命名空间起别名,如下: namespace main; use com\getinstance...自动加载 PHP5 引入了 __autoload() 方法来自动包含类文件,当 PHP 引擎遇到试图实例化未知类操作时,会调用 __autoload() 方法(如果已经定义),并将类名当作字符串参数传递给它...,编写 __autoload() 时,应该定义一种策略来定位和包含缺失类文件。

    1.1K20

    编码之旅:C++基础韵律

    定义命名空间时,需要使用到namespace关键字,后面跟命名空间名字,然后接⼀对 { } 即可,{ } 中即为命名空间成员。命名间中可以定义变量、函数、类型等。...编译查找⼀个变量声明、定义时,默认只会在局部或者全局查找,不会到命名空间里面去查找。 2. 所以我们要使用命名间中定义变量、函数,有三种方式: 指定命名空间访问。...缺省参数是声明或定义函数时为函数参数指定⼀个缺省值。 2. 在调用该函数时,如果没有指定实参,则采用该形参缺省值,否则使用指定实参,缺省参数分为全缺省和半缺省参数。 3. ...时⽆法通过参数区分 void fxx() {} int fxx() { return 0; } // 下⾯两个函数构成重载 // 但是f()但是⽤时,会报错,存在歧义,编译器不知道⽤谁,可能是第一个函数没有参数...4. inline修饰函数时不建议声明和定义分离到两个文件,分离会导致链接错误。因为inline被展开,就没有函数地址,链接时会出现报错。

    300

    PHP命名空间是怎样存在?(三)

    全局空间 当文件中定义命名空间,也就是namesapce指定了当前命名空间后,在调用全局类、函数、常量时,需要添加一个“\”,也就是完全限定访问符号来标明这个类、函数、常量是全局那个,而不是当前命名间中...之间说过,命名空间就是为了解决同名问题而出现,这个方法和全局php自带那个方法是完全相同名称。所以,在调用时候我们需要调用是哪个方法。那么如果当前命名间中没有定义这个方法呢?...那么后备作用就是如果当前命名间中没有找到时,会去全局找相关函数。在文档中定义是这样: 当 PHP 遇到一个非限定类、函数或常量名称时,它使用不同优先策略来解析该名称。...对于函数和常量来说,如果当前命名间中不存在该函数或常量,PHP 会退而使用全局空间中函数或常量。 意思也就是说,函数和常量,会有后备去全局查找能力。但是类不行!!...,类和常量用在编译时解析。

    1K10

    Python代码命名太烂了,命令你熟读本篇迷你命名指南!

    还有我老师真的没有教我命名规范阿... ? 不就是命名规范么?我马上学起来!等我学成了还找你给我 bug !..."迷你"命名指南 为了防止我亲爱读者不再重复我老路,我决定挑选一些具有普适性命名规则,可以应用在变量、函数、类、模块等命名上面....实际上命名规则千千万,没必要都记清楚,掌握其中一些重要,足够你理直气壮让大佬去 bug... ?...2、像 'abs'、'str'、'eval' 等内置函数也应该避免使用,防止出现在当前命名间中被屏蔽尴尬情况。 3、一些列前缀和后缀。...4、许多包名称都应该被避免,诸如 'tools'、'utils'、'core' 名称很大可能会变成一大堆不相关、质量非常差代码片段,虽然它们在名称上并没有本质错误,但为了防止问题出现,还是直接将其作为自己自定义命名扼杀在萌芽状态为好

    49620
    领券