精华内容
下载资源
问答
  • 下面我们就为大家介绍一下PHP中use的用法。1、new类时,最前面无需用反斜杠。此外,use后没有as时,缩短的命名空间默认为最后一个反斜杠后的内容。namespace animal\dog;class Life{function __construct(){echo '...

    127a9788c3fe4b109b7e746038b677f4.png

    在PHP中,如果命名空间字符串过长时,我们就使用use来相应的缩短命名空间。这也是use在PHP中的作用。下面我们就为大家介绍一下PHP中use的用法。

    1、new类时,最前面无需用反斜杠。此外,use后没有as时,缩短的命名空间默认为最后一个反斜杠后的内容。namespace animal\dog;

    class Life{

    function __construct(){

    echo 'dog life!';

    }

    }

    namespace animal\cat;

    class Life{

    function __construct(){

    echo 'cat life!';

    }

    }

    new Life(); //按照代码执行顺序,这里默认animal\cat这个命名空间

    new \animal\dog\Life(); //A

    use animal\dog; //a

    new dog\Life(); //B

    use animal\dog as d; //b

    new d\Life();

    通过A、B行代码比较,需要注意:

    使用use后,new类时,最前面没有反斜杠。

    没使用use时,命名空间最前面有反斜杠

    通过a、b行代码比较,可以理解:

    use后没有as时,缩短的命名空间默认为最后一个反斜杠后的内容。如上的:use animal\dog;

    相当于use animal\dog as dog;

    2.namespace后面不建议加类名,但use后可以。//name.php

    namespace animal\dog;

    class Life{

    function __construct(){

    echo 'dog life!';

    }

    }

    namespace animal\cat;

    class Life{

    function __construct(){

    echo 'cat life!';

    }

    }

    use animal\dog\Life as dog;

    new dog();

    如上所示,use后加上类名后,就相当于把类改了个名称:由Life改为dog了。

    上面不用as dog就会报错:Fatal error: Cannot use animal\dog\Life as Life because the name is already in use

    因为cat下也有个一样名称的Life类。

    可以理解为,使用use后,这个昵称对应的类只能归当前命名空间占有,其它命名空间下不允许存在该类。//name.php

    namespace animal\dog;

    class Life{

    function __construct(){

    echo 'dog life!';

    }

    }

    class Dog{

    function __construct(){

    echo 'dog in dog!';

    }

    }

    namespace animal\cat;

    // class Dog{

    // function __construct(){

    // echo 'dog in cat!';

    // }

    // }

    class Life{

    function __construct(){

    echo 'cat life!';

    }

    }

    use animal\dog;

    new dog\Dog();

    如上,使用了use animal\dog;

    cat

    通过上面代码,我想使用use的目的效果(缩短命名空间名称)就很明显了。

    简单总结一下:

    use就是起小名的作用,不论写起来还是说起来都可以省不少事儿。

    展开全文
  • TP5 namespace 和 use 的用法

    千次阅读 2017-04-14 17:11:35
    PHP 命名空间(namespace)在PHP 5.3中加入,如果你学过C#和Java,那命名空间就不算什么新事物。 不过在PHP当中还是有着相当重要意义。PHP 命名空间可以解决以下两类问题:用户编写代码与PHP内部类/函数/...

    PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物。 不过在PHP当中还是有着相当重要的意义。
    PHP 命名空间可以解决以下两类问题:
    用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
    为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

    参考来源:http://www.w3cschool.cn/php/b298tfl0.html

     

    PHP 7 可以使用一个 use 从同一个 namespace 中导入类、函数和常量:

    参考来源:http://www.w3cschool.cn/php/php-use-statement.html

     

    <?php
    //inc.php 用来作测试的文档
    namespace Aaa\Bbb;
    class MyClass{
    	public $val = '阅谁问君诵,';
    	static $val2 = '水落清香浮。';
    	function myFun(){
    		return 'onestopweb.iteye.com';
    	}
    }

     

    <?php
    header('Content-Type:text/html;charset=utf-8');
    //第一种,使用全称来访问
    require 'inc.php';
    $myClass = new \Aaa\Bbb\MyClass();
    echo $myClass->val;
    echo $myClass::$val2;
    echo $myClass->myFun();
    

     

    <?php
    //第二种,使用 namespace 来访问
    namespace Aaa\Bbb; //调整当前脚本到Aaa\Bbb这个ns域,而且 namespace 申明必须在第一句
    header('Content-Type:text/html;charset=utf-8');
    require 'inc.php';
    $myClass = new MyClass();
    echo $myClass->val;
    echo $myClass::$val2;
    echo $myClass->myFun();

     

    <?php
    header('Content-Type:text/html;charset=utf-8');
    //第三种使用 use 来访问
    require 'inc.php';
    use Aaa\Bbb\MyClass; //这样MyClass就等于Aaa\Bbb\MyClass
    $myClass = new MyClass();
    echo $myClass->val;
    echo $myClass::$val2;
    echo $myClass->myFun();

     

    <?php
    header('Content-Type:text/html;charset=utf-8');
    //第四种使用 use as 来访问
    require 'inc.php';
    use Aaa\Bbb as AB; //AB = Aaa\Bbb
    $myClass = new AB\MyClass();
    echo $myClass->val;
    echo $myClass::$val2;
    echo $myClass->myFun();

     

    效果图:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 本文实例讲述了PHP命名空间namespace及use的简单用法。分享给大家供大家参考,具体如下: 最近一段时间在研究php框架,一直想的什么时候才能开发出自己的框架,当然这为了提升自己的编程水平,同时能把平时学的...
  • PHP命名空间 namespace 及 use 的用法

    千次阅读 2019-02-18 17:16:59
    什么是命名空间?命名空间一种封装事物方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中文件来说,它就扮演了命名空间角色。具体举个例子,文件 foo.txt ...

    PHP中,出现同名函数或是同名类是不被允许的。为防止编程人员在项目中定义的类名或函数名出现重复冲突,在PHP5.3中引入了命名空间这一概念。

    什么是命名空间?命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。

    在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:

    1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
    2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

    命名空间语法示例:

    <?php
    namespace my\name; // 参考 "定义命名空间" 小节
    
    class MyClass {}
    function myfunction() {}
    const MYCONST = 1;
    
    $a = new MyClass;
    $c = new \my\name\MyClass; // 参考 "全局空间" 小节
    
    $a = strlen('hi'); // 参考 "使用命名空间:后备全局函数/常量" 小节
    
    $d = namespace\MYCONST; // 参考 "namespace操作符和__NAMESPACE__常量” 小节
    
    $d = __NAMESPACE__ . '\MYCONST';
    echo constant($d); // 参考 "命名空间和动态语言特征" 小节
    ?>

    1.命名空间,即将代码划分成不同空间,不同空间的类名相互独立,互不冲突。一个php文件中可以存在多个命名空间,第一个命名空间前不能有任何代码。内容空间声明后的代码便属于这个命名空间,例如:

    <?php
        echo 111;       //由于namespace前有代码而报错
        namespace Teacher;
        class Person{
            function __construct(){
                echo 'Please study!';
            }
        }

    2.调用不同空间内类或方法需写明命名空间。例如:

    <?php
        namespace Teacher;
        class Person{
            function __construct(){
                echo 'Please study!<br/>';
            }
        }
        function Person(){
            return 'You must stay here!';
        };
        namespace Student;
        class Person{
            function __construct(){
                echo 'I want to play!<br/>';
            }
        }
        new Person();                    //本空间(Student空间)
        new \Teacher\Person();           //Teacher空间
        new \Student\Person();           //Student空间
        echo \Teacher\Person();          //Teacher空间下Person函数
        //输出:
        I want to play!
        Please study!
        I want to play!
        You must stay here!

    3.在命名空间内引入其他文件不会属于本命名空间,而属于公共空间或是文件中本身定义的命名空间。例:

    首先定义一个1.php和2.php文件:

    <?php     //1.php
    class Person{
        function __construct(){
                echo 'I am one!<br/>';
            }
    }

     

    <?php
    namespace Newer;
    require_once './1.php';
    new Person();      //报错,找不到Person;
    new \Person();     //输出 I am tow!;

     

    <?php     //2.php
    namespace Two
    class Person{
        function __construct(){
                echo 'I am tow!<br/>';
            }
    }
    
    <?php
    namespace New;
    require_once './2.php';
    new Person();      //报错,(当前空间)找不到Person;
    new \Person();     //报错,(公共空间)找不到Person;
    new \Two\Person();  //输出 I am tow!;

    4.下面我们来看use的使用方法:(use以后引用可简写)   

     namespace School\Parents;
        class Man{
            function __construct(){
                echo 'Listen to teachers!<br/>';
            }
        }
        namespace School\Teacher;
        class Person{
            function __construct(){
                echo 'Please study!<br/>';
            }
        }
        namespace School\Student;
        class Person{
            function __construct(){
                echo 'I want to play!<br/>';
            }
        }
        new Person();                   //输出I want to play!
        new \School\Teacher\Person();   //输出Please study!
        new Teacher\Person();           //报错
        ----------
        use School\Teacher;  
        new Teacher\Person();           //输出Please study!    
        ----------
        use School\Teacher as Tc;  
        new Tc\Person();           //输出Please study!  
        ----------
        use \School\Teacher\Person; 
        new Person();           //报错
        ----------
        use \School\Parent\Man; 
        new Man();           //报错

    参考教程:

    PHP 命名空间(namespace)

    PHP命名空间(Namespace)的使用详解

    PHP命名空间 namespace 及导入 use 的用法

    展开全文
  • 什么场合要用 use strict 当你程序有一定行数时,尤其在一页放不下时,或者你找不到发生错误原因时。 为什么要用 use strict? 众多原因之一帮你寻找因为错误拼写造成错误。比如错误使用了'$...

    什么场合要用 use strict

    当你的程序有一定的行数时,尤其是在一页放不下时,或者是你找不到发生错误的原因时。

    为什么要用 use strict?

    众多的原因之一是帮你寻找因为错误拼写造成的错误。比如错误使用了'$recieve_date' 变量,但实际上你在程序中已声明的是 '$receive_date' 变量,这个错误就很难发现。同样,use strict 迫使你把变量的范围缩到最小,使你不必担心同名变量在程序的其它部份发生不良作用。(尽管这是 my 的功能,但是如果你使用 use strict 的话,它会强迫你用 my 声明变量,来达到上述目的)。

    用 use strict 麻烦吗?

    不麻烦,只要在你的脚本的开始加上11个字符而已!(use strict;), 另外在整个程序中用my 声明变量。

     

    不错,那我怎么用 use strict 呢?

    在你的脚本的开头 '#!/usr/local/bin/perl' 后面加上这句就行。

    use strict;

    得,程序出错了,我该怎么办?

    常见的错误信息一般如下:

    Global symbol "$xxx" requires explicit package name at ./tst line 5.

    这就是需要我们马上去解决的错误。(如果出现类似于 'Server Error' 之类的错误,请检查一下你的 web 服务器上的 error logs, 或用CGI::Carp包。 )

    任何时候,当你要声明一个变量时,都要把 'my' 放在前面。例如:

    # 把这段代码:
    $string = "hello world";
    @array = qw(ABC DEF);
    %hash = (A=>1, B=>2);
    
    # 改成:
    my $string = "hello world";
    my @array = qw(ABC DEF);
    my %hash = (A=>1, B=>2);
    
    # 把这段代码:
    # '$name' is global here
    foreach $name (@names) {
     print "Name: $name\n";
    }
    
    # 改成:
    foreach my $name (@names) {
     # Now '$name' only exists in this block
     print "Name: $name\n";
    }
    
    # 把这段代码:
    # 同样, '$digit' 在这里是全局变量
    foreach $digit (@digits) {
     $number = 10== $number + $digit;
    }
    print "Number: $number\n";
    
    # 改成: (外层的变量('$number')
    # 将在外层声明):
    my $number = 0;
    foreach my $digit (@digits)
     # 现在'$digit' 仅仅在这个代码块里存在
     $number = 10== $number + $digit;
    }
    print "Number: $number\n";
    
    # 把这段代码:
    sub my_sub {
     ($arg1, $arg2) = @_;
     print "Arg1: $arg1 Arg2: $arg2\n";
    }
    
    # 改成:
    sub my_sub {
     my ($arg1, $arg2) = @_;
     print "Arg1: $arg1 Arg2: $arg2\n";
    }
    
    # 下面的代码好像在用 DBI 嘛?一样要改!:
    $sth->bind_columns(\$field1, \$field2);
    while ($sth->fetch) {
     print "F1: $field1 F2: $field2\n";
    }
    
    # 改成:
    $sth->bind_columns(\my ($field1, $field2));
    while ($sth->fetch) {
     print "F1: $field1 F2: $field2\n";
    }

    这也太麻烦了吧。懒惰不是 Perl 文化中的美德吗?

    当然,懒惰是我们的美德。因为你会发现使用 use strict 之后,我们就不必花太多的时间自己去查找 use strict 可以找到的很多简单错误。

    那 warnings 又是什么?

    哦,对了。在 Perl 5.6 及以后的版本里,我们可以在写 'use strict;' 的位置旁写 'use warnings;':

    use warnings;

    在 Perl 5.6 版之前(或者为了不同 Perl 版本间的兼容 ),你可以用命令行参数 '#!/usr/bin/perl -w'。还有一种办法是设置

    $^W

    变量(不过,如果

    $^W

    不在BEGIN{}程序块里的话,就没办法截取编译时的错误提示,所以一般我们用 '-w'):

    #!/usr/local/bin/perl -w
    
    # 或者
    $^W = 1;
    # 或者
    BEGIN { $^W = 1 }

    如果你确定不用 warnings,你可以限制它的使用范围,如:

    # 把这段代码:
    sub add_two_numbers_which_might_be_undef {
     $_[0] + $_[1];
    }
    
    # 根据Perl 的版本不同改成下面的样子:
    # 1
    sub add_two_numbers_which_might_be_undef {
     # 参见 'perldoc perllexwarn' 
     # 因为最好是只在你希望的地方禁止掉warning
     no warnings "uninitialized";
     $_[0] + $_[1];
    }
    
    # 2
    sub add_two_numbers_which_might_be_undef {
     local $^W;
     $_[0] + $_[1];
    }

    或者,你应像前面例子中声明 '$number'一样初始化变量。

    你还可以参阅Ovid的妙文use strict' is not Perl

    以及(Wog指出的):Use strict warnings and diagnosticsUse strict warnings and diagnostics or die.

    okay,现在你应该没什么借口不用 use strict 或 use warnings 了吧,它使我们大家生活可以轻松一些:)

    转载于:https://www.cnblogs.com/followyourdream/p/3455688.html

    展开全文
  • 调用xilinx提供ip core,使用了use reloadable coefficient功能,但有以下几点疑问,哪位有用过大虾能否指点迷津下 1、使用use coefficients reloadable之后,仍需导入.coe文件,这个文件作用是什么,此时...
  • // Use oauth2.NoContext if there isn't a good context to pass in. ctx := context.Background() computeService, err := compute.NewService(ctx) if err != nil { log.Fatal(err) } stopTaggedMachines...
  • <p>Go's <code>... ... ...<p>I see that the standard library uses these methods for example when writing request headers, but why are they public/what is a standard use case? </div>
  • 一、反射定义本文基于 JDK8,Oracle官网对反射解释 Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, ...
  • <p>Mostly I want to know if I should use the dot operator to call functions or use my type as one of the arguments. Also is it better to use pointers or not? <li>pointer vs no pointer? <li>dot vs ...
  • How we can use it in a expression? <pre><code> function test_yield(){ for ($i=0; $i <10; $i++) { $myval = (yield $i); echo " \ ".$myval." / <br />"; } } foreach (test_yield() as $...
  • nodejs中.use()的用法(坑)

    千次阅读 2019-08-21 14:59:03
    一开始看教程视频时候,上面只是简单地说.get()处理get请求,.post()处理post请求 而.use()可以处理get和post 然而,我写了两个接口,一个/user/...什么时候用.use() 要使用中间件时候,比如添加过滤...
  • Provides a statement with an identifier that you can refer to using a break or continue statement.For example, you can use a label to identify a loop, and then use the break or continue statements to ...
  • <p>I see a lot of answers on Stackoverflow and what the operator accomplishes, but nobody ever says WHY they would use it over just typing out <code>12345</code> so like I said, why use them and what ...
  • ironpython网络动态语言1.动态语言元组最常用于返回方法多个值, 常用在函数式语言(如 F#)和动态语言(如 IronPython)中,使用方法像 Visual Basic 和 C# 一样简 …语法用例例句1:IronPython, part... is also use...
  • <p>Laravel docs: <li><ul> <li><ul> <li><ul> ... <li>cd /path-to-your-project &... So how can I fix it in order not to use cron job nor windows task scheduler? <p>Thanks </div>
  • vue.use()和vue.extend()的用法

    千次阅读 2020-04-30 10:12:19
    常会见到vue.use()和vue.extend(),到底什么意思呢? 一、vue.use() 经常会用到Vue.use(VueRouter)、Vue.use(elementUI),因为这些插件没有install。 而axios没有install,axios不能use。因为axios不是专门为vue一...
  • 1. You will use a boot loader like LILO to operate the boot process.您可以用一个象LILO 这样加载程序执行引导过程。www.ibm.com2. If you're starting fresh, you can jump straight to the Configuring LILO...
  • <p>Is a PHP session varriable the session ID ? if not , then what is the exact use of a session variable when we already have a unique session ID ??? Can someone please explain ? an example would ...
  • 首先申明:这我在网上搜,不是本人自己写,希望对大家有帮助。 DOM4Jdom4j.org出品一个开源XML解析包,它网站中这样定义: Dom4j is an easy to use, open source library for working with XML, ...
  • NesC里面为interface提供了command和event的关键字,很多同学不清楚什么时候应该用那一个关键字,这节课就讲讲他们的用法吧! 因为interface双向定义的,所以如果一个interface a下的一系列功能也就是commands...
  • In the process of scraping some documents using Python 2.7, I've run into some annoying page separators, which I've decided to ... The separators use some funky characters. I already asked one que...
  • 全部二重唱二人组Backwards compatible with devices that use Memory Stick PRO Duo ? media .与使用 记忆棒 短棒电子产品兼容.期刊摘选At some coordination position, coordination accuracy could be improved...
  • Express框架简介及初体验1.1 Express框架是什么1.2 Express框架特性1.3 原生Node.js与Express框架对比之路由1.4 原生Node.js与Express框架对比之获取请求参数1.5 Express初体验2. 中间件2.1 什么是中间件2.2 app....
  • What is the correct use of multiple input and output operands in extended GCC asm under register constraint? Consider this minimal version of my problem. The following brief extended asm code in GCC, ...
  • public Employee(string name, string alias){ // Use this to qualify the fields, name and alias: this.name = ...}this的用法this.name=name 这个什么意思啊 具体点我有点狠难理解 这个构造函数,this.nam...
  • 全部铁锈锈病锈菌锈色生锈变钝Application: mainly use to shave rust and oil paint.用途: 主要用来刮除铁锈和墙漆.期刊摘选Better to wear out than to rust out.宁可用坏,不可锈坏.期刊摘选The car has developed...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 269
精华内容 107
关键字:

use的用法是什么