面向对象第八天----命名空间

命名空间 namespace php5.3
1.1 命名空间概述
      这个原理应用到程序设计领域就是命名空间的概念。
解决的问题:
      1.用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

      2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

1.2 定义命名空间
    格式:
        namespace 空间名
注意:
    ① namespace 前不能任何输出 包括header
    ② 如果之前说过的系统冲突问题 优先使用自己namespace中的类函数常量
    ③ 引入的文件与本名明空间无关,必须用访问路径连接 且没有命名空间的类函数常量默认在 根空间下

1.3 定义子命名空间
    namespace lamp\php
        注意:路径可以为 相对和绝对 但是不能上一程 ../

1.4 在同一个文件中定义多个命名空间

    namespace A;
    namespace B;
    或者
    namespace A{
      }
    namespace B{
      }

1.5 使用命名空间
    非限定名称 demo();
    限定名称 php\demo();
    完全限定名称 \lamp\php\demo();

1.6 命名空间和动态语言特性
    常量 函数 类
    使用动态语言特新时 要使用完全限定名称

1.7 namespace关键字 和 __NAMESPACE__ 魔术常量
    namespace 定义命名空间
    namespace 指代当前命名空间名

__NAMESPACE__ 表示当前命名空间名

1.8 使用命名空间:别名/导入
    use 别名 用 namespace 代替    
    use 命名空间 as 别名      //     use lamp\php\oop as lp;
    use 命名空间 默认把最后一级空间名当作别名
    use 导入
    use 空间名\类名;    

1.9 全局空间
    如果没有命名空间 则 默认在全局 根 空间下

1.10 使用命名空间:后备全局函数/常量
    函数 常量 可以
    类 不可以
1.11 名称解析规则

时间: 2024-10-11 12:43:10

面向对象第八天----命名空间的相关文章

面向对象进阶:命名空间和组合

面向对象的命名空间 属性:静态属性(直接和类名关联的对象或者直接定义在class下的变量).对象属性(在类内和self关联,在类外和对象名关联的变量) 类名操作变量 不管操作可变还是不可变数据类型 都是类中对应的变量发生变化对象名操作静态变量引用变量:先在自己的命名空间中查找,找不到就去类的命名空间找修改变量:如果是对可变数据类型中的元素进行修改,那么全局生效如果是对变量进行重新赋值,那么只是在对象自己的命名空间里增加了一个新的属性 class Foo: country = 'China' co

js面向对象编程:命名空间

在其它语言中为了避免类和方法重名问题,都有一个类似命名空间的概念,在js中实现类似的功能吗? 能够实现,主要是借助于js中对象的概念来实现,比如:  1 在命名空间中定义方法属性 var GiantCorp =GiantCorp||{}; GiantCorp.Common = { Test1:function(){alert("Test1")},//方法 Field1:"Field1"//属性 }; GiantCorp.ErrorCodes = { Test1:fu

面向对象第八天 -----新特性Trait

81.Trait php5.4 新特性 2.1 Trait的概述 Trait 是 PHP5.4 中的新特性,是 PHP 多重继承的一种解决方案.例如,需要同时继承两个 Abstract Class, 这将会是件很麻烦的事情,Trait 就是 为了解决这个问题. 2.2 Trait的简单使用 格式:: trait 名字{ } 特点: ① 不能被实例化 ② 在类中use引入来实现其价值 2.3 多个Trait的引用 use A,B 2.4 Trait之间的嵌套 一个trait 可以由多个 trait

面向对象第八天---预处理与mysql事务

4. PDOStatment 对象 4.1 PDOStatmen中的成员方法 fetch fetchALl 4.2 设置返回结果的数组类型 PDO::FETCH_ASSOC PDO::FETCH_NUM PDO::FETCH_BOTH PDO::FETCH_OBJ stdClass填充属性 4.3 pdo处理结果集方式 1.fetch 遍历 2.fetchAll 全部获取 3.直接遍历$stmt对象 5. pdo预处理的使用(重点) 5.1 预处理的优点 防止SQL注入 批处理能够提高SQL处理

20180724 (面向对象:类的命名空间和查询顺序丶组合)

一.类的名称空间 类名()  产生了一个含有对象指针的空间 先执行代码 从上向下执行 首先执行到class的时候,创建了一个Person类的空间,其中有静态变量和方法以及方法的内存地址 之后执行到p1 = Person()的时候,又创建了一个p1的实例空间,当还没读到括号里面的参数的时候,此时该实例空间里只有一个指示牌是指向Person类空间的 当执行到括号里面的内容的时候,此时实例空间里多了country = "菲律宾",name = "alex",age = 4

day24 面向对象,交互,组合,命名空间,初始继承

面向对象的命名空间: #属性:静态属性 (直接和类名关联或者直接定义在class下的变量) # 对象属性 (在类内和self关联,在类外和对象名关联的变量) # 动态属性(函数) class Foo: country = 'China' country_lst = ['China'] def __init__(self,name): self.name = name alex = Foo('alexander') egg = Foo('egon') alex.age = 90 alex.coun

js中的面向对象程序设计

面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值.对象或者函数.可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的值(值可以是基本值/对象/方法). 1.json格式的面向对象,一个命名空间:适合模块化开发插件.不同的模块使用不同的命名空间.也可用于小型

PHP程序员技能栈

PHP程序员技能栈 提交 我的评论 加载中 已评论 PHP程序员技能栈 2015-07-10 PHP开发者 PHP开发者 PHP开发者 微信号 phpDevs 功能介绍 分享 PHP 相关的技术文章.工具资源.精选课程.资讯 点击上方蓝字↑↑↑,轻松关注哦~ 写在前面 当我们谈到PHP开发,我们其实是在谈论网站,数据库,缓存,session,负载均衡等等等等一些列复杂技术的集合.所以,PHP的技能栈也比一般得要长很多. PHP基础 在这里,你需要了解的是: 在各个平台安装php并用php内置的w

[PHP]程序员技能栈

[PHP]程序员技能栈.md-/Users/zjh/Documents/我的文章/[PHP]程序员技能栈 html{font-family: sans-serif;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%}body{margin: 0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display: