博客列表 >0906作业:命名空间及使用

0906作业:命名空间及使用

Samoye
Samoye原创
2018年09月07日 19:40:02634浏览

作业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:非限定名称,限定名称和完全限定名称的命名空间之间的区别与联系是什么?

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

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议