Blogger Information
Blog 34
fans 0
comment 1
visits 23373
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0906作业:命名空间及使用
Samoye
Original
625 people have browsed it

作业1:用大括号语法实现在一个脚本中创建多个命名空间并访问成员

实例

<?php
/**
  命名空间:解决了类,函数,常量的重名问题,而别名解决了书写路径过长的问题,提高代码效率和可读性。
 */
namespace A {
    const NLB ='二狗';
    class Animal
    {
        private $name = '哈士奇';

        public function sing()
        {
            return $this->name . '在唱歌';
        }
    }
    //访问B的成员
    \B\Web::getAdd('www.php.cn');
    echo'<hr>';

}
namespace B {
    const SITE_NAME = 'PHP中文网';
    class Web {
        public $name;
        public static function getAdd($add){
            echo 'PHP中文网的地址是:'.$add;
        }
    }

    //访问C的成员
    echo \C\add(80,100);
    echo'<hr>';

}

namespace C {
    function add($a,$b){
        return $a+$b;
    }
}

namespace {
    //访问A的成员
   echo \A\NLB.'<br>';
   echo (new \A\Animal())->sing();
   echo'<hr>';
   //访问B空间的成员
    \B\Web::getAdd('www.php.cn');
    echo'<hr>';
    //访问C下面的成员
   echo \C\add(80,100);
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

作业2:使用use 导入其它脚本中的类/常量/函数,并使用别名方式访问

代码1:被包含的命名空间

实例

<?php
/**
 * Created by PhpStorm.
 * User: Core
 * Date: 2018/9/7
 * Time: 18:09
 */
//创建一个用于引入的空间

namespace One\Two\Three{
    class Sum{

        public function add($a,$b,$c){
            return $a+=$b+$c;
        }
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

代码2:被包含的命名空间

实例

<?php
/**

 */
namespace Test{
    class Sum{

        public function add($a,$b){
            return $a+=$b;
        }
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

代码3:use的使用和as别名

实例

<?php
/**
  用于测试引入类和类别名
 */
namespace User;
include "test.php";
include "one.php";

use \One\Two\Three\Sum;
use \Test\Sum as Addsum;

//使用one脚本下的add 方法 这样路径太长输入麻烦
//echo (new \One\Two\Three\Sum())->add(10,20,30);
//使用use 关键字,缩短路径
echo (new Sum())->add(10,30,100);
//因为test中也有个类sum,重名了,使用use建立一个别名
echo (new Addsum())->add(100,300);

运行实例 »

点击 "运行实例" 按钮查看在线实例

作业3:非限定名称,限定名称和完全限定名称的命名空间之间的区别与联系是什么?

/*
 *非限定名称,限定名称和完全限定名称的命名空间之间的区别与联系是什么?
 *
 * 非限定名称只能用于访问 自己/当前 空间的常量,函数,类。
 * 限定名称用于访问当前类的子类,下一级目录,类似:相对路径概念
 * 完全限定名称:就是从根空间\开始,逐级访问空间名称,类似绝对路径;
 *
 *
 *
 */

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post