php中命名空间、面向对象、访问控制、接口

命名空间:

php中命名空间:解决自己编写的代码和php内置及第三方的函数、常量、类命名冲突问题(在不同的命名空间可以定义相同名称的常量、类、函数);及为繁琐的命名创建一个别名,具体如下:

	 //1.简单定义命名空间:namespace mydemo;//定义命名空间使用关键字namespaceecho '要执行的代码';//2.上面方式可以在一个文件中定义多个命名空间,但是不推荐,推荐如下方式:namespace mydemo1{echo '要执行的代码块1';};namespace mydemo2{echo '要执行的代码块2';};//3.有的时候需要将全局的非命名空间的代码和命名空间的代码结合使用,此时只需要将全局非命名空间中的代码放入namespace{}大括号中,注意:此时没有命名名称,如:namespace mytest{echo '要执行的代码'}namespace{echo '全局非命名空间的代码'};//4.注意:在命名空间之前不能出现非php代码,包括空白符等,但是用于声明文件编码方式的declare可以,如:declare(encoding='UTF-8');namespase mydemo;//5.子命名空间:和文件的目录相似,php允许命名空间名称层次化,如:namespace mydemo\test;$str = 'hello';//此时字符串访问方式:\mydemo\test\$str;

命名空间的使用:

	//1.访问其他命名空间的变量、类、函数:若要访问其他命名空间变量、类、函数,那么就要在名称前面加路径,如:namespace myspace1;$num = 2;class car {function run(){echo '车子跑'}};function f1(){echo '这是f1函数'};namespace myspace2;echo \myspace1\$num;//在myspace2中访问myspace1中的变量、类、函数,注意前面也要给斜杠var_dump(new \myspace1\car());\myspace1\f1();//2.定义子命名空间:命名空间类似文件夹目录,可以在一个名空间中定义子命名空间,语法是在命名空间名称前面加父级路径,如:namespace fatherspace;$num = 2;namespace fatherspace\sonspace;//此时在fatherspace命名空间下面定义了一个sonspace命名空间,当然这里可以定义多个子命名空间,也可以定义多层$num = 3;//3.公共空间中的变量、类、函数:指没有在命名空间内定义的变量、类、函数,公共空间中定义的变量、类、函数可以直接在命名空间中使用,但是使用时要加\表示在根目录下;使用完依然是公共空间的,如:$num = 3;namespace myselfspace;echo \$num;//4.给命名空间定义别名:php中使用use关键字定义别名,如:use mydemo\f1 as fn;//当别名为最后一个层级时,可以省略as及别名,如:use mydemo\classname等同于:use mydemo\classname as classname;

面向对象:

对象是一个信息或对信息进行处理的描述所组成的整体,是对现实世界的抽象,生活中万物皆对象。

面向对象内容:

	 //1.类:定义一件事物的抽象特点,包含数据的形式及对数据的操作,类的定义如下:class Car{var $car1;var $car2 = '五菱';function run(){echo '跑';};}//2.对象:是类的实例,在类被创建后,通过new关键字来实例化一个对象,如:$boama = new Car;//可以通过new关键字使用同一个类创建多个对象。//3.成员变量:定义在类里面的变量,该值对外是不可见的,但可以通过成员函数访问,当类被实例化后该变量称对象属性。class Car{var $car1;//成员变量function run(){echo '跑';};}//4.成员函数:定义在类里面可以访问对象的数据。class Car{var $car1;function run(){echo '跑';};//成员函数}//5.继承:子类共享父类数据结构和方法的机制。class mycar extends Car {};//php使用关键字extends继承一个类,php不支持多继承。//6.父类:一个类被其他类继承后可称为父类,别名基类,超类。//7.子类:继承了其它类的类称为子类,别名派生类。//8.多态:多态指相同的函数或方法作用于多种类型的对象上获得不同的结果这一现象。//9.重载:同名不同参数的函数或方法之间互相称重载。//10.抽象性:将有一致属性和行为的对象抽象成类。//11.封装:将现实中某个客体的属性和行为捆绑在一起,并放置在一个逻辑单元中。//12.构造函数:用于创建对象时初始化对象(变量赋值的过程),总与new 一起使用。//13.析构函数:对象结束生命周期后,析构函数中使用delete释放内存空间,和构造函数相反。class Car {function __construct() {//类中的构造函数通过__construct声明,$this指这个类->可以理解为的,和js中冒号 :差不多$this->name = "baoma";}function __destruct() {//类中解析函数通过__destruct声明,在解析函数中写入属性或方法对属性或方法进行销毁。print "销毁 " . $this->name . "\n";}}

访问控制:

php对属性或方法的控制是通过前面添加关键字控制:public公有、protected受保护、private私有,如:

	class Car{private var $car2 = 'baoma';public function run(){echo '跑';};}

接口:

用来实现某些方法而无需定义具体方法,使用关键字interface定义接口,接口中的所有方法都是公有的,要实现一个接口使用implements操作符,如:

	interface temapi{//定义一个接口public function setnames($name);};class dog implements temapi{public function setnames($name){$this->vars[$name]= 'xiaohei';};};

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经典的十个机器学习算法

1、C4.5 机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的 属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的…

JSON数据、字符串拼接、宽字符处理、数组、Notice警告、isset和empty、变量、作用域、常量、include和require

JSON数据: 字面量是代码中表述数据的手段,JSON是一门类似于js字面量表述数据的手段,JSON是现在市面上用的最广的数据表述手段。 1.JSON对象中属性名称必须用双引号引起来 2.JSON中字符串必须用双引号引起来 3.JSON中不允许使用注释 4.JS…

表单及数据提交、表单的作用、服务端接收提交的数据、php处理数据流程、文件域及文件域中数据处理、php展示数据(响应)

表单及数据提交: 表单的作用: 用于收集相关信息;html中有专门提交数据的标签,可以很容易的收集用户输入的信息,这个标签有两个重要的属性:action表单提交的地址和method以什么方式提交表单,通…

数据库、MySQL介绍及安装流程、SQL语句中增删改查、SQL注入、通过php操作数据库,plugin ‘caching_sha2_password加密规则,分表查询

MySQL数据库: 数据库: 存放数据的仓库,用来按照特定的结构去组织和管理我们的数据,有数据库就可以更加方便的储存数据; 数据库只是存储数据的一种手段,最终数据是存放在硬盘中的,只是存放的格…

可能 delphi7 下稳定的最后一版本 GDIPLUS

可能 delphi7 下稳定的最后一版本 GDIPLUS 可能 delphi7 下稳定的最后一版本 GDIPLUS万一的 blog 说"终于, Delphi XE2 携带 GDI 库了使用了较早的 http://www.progdigy.com"但这个网址已经下不了了,而 http://www.bilsen.com/gdiplus 的又要 delphi2009 以后版本,另…

ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP

AJAX简介: ajax背景: 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API,最早出现在谷歌浏览器,是在浏览器端进行网络编程(发送请求、接收响应)的技术方案。它可以使我们通过JavaScr…

我的第一个项目(人力资源管理之报表管理)

2014年暑期实习老师要求的是人力资源管理系统,组队后组长分配给的任务是报表管理。 我做的报表管理,主要的功能是用户输入查询的时间区间和查询部门,然后将数据据库返回的数据显示在浏览器上。用户可以选择是否生成excel表格(表格…

jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

jQuery中使用ajax: 在jQuery中使用ajax首先需要引入jQuery包,其引入方式可以采用网络资源,也可以下载包到项目文件中,这里推荐下载包到文件中;市面上有多个版本的jQuery库,这里到官网:https://…

chartjs和echartsjs库简介

chart.js和echarts.js: 尽管我们已经掌握了canvas绘图和SVG矢量图,在实际开发中我们依旧不会使用canvas和SVG,因为考虑到开发成本,一般会采用相关的图表库进行辅助开发,市面上常用的图表库有chart.js和echarts.js;如果…

弱智的我

【你能看到多少个人头? 】 0—4张: 弱智; 5—8张: 一般人; 9—11张: 特别感性; 11—13张: 精神分裂. 晕倒, 我是弱智的...就看到一个人头...转载于:https://www.cnblogs.com/zhangzujin/p/3877222.html

POJ 1201

d[i]表示在[0,i]这个区间内一共选了d[i]个数 对于每个为[ai,bi]的区间&#xff0c;你必须在这个区间上至少取ci个不同的整数&#xff0c;用d[i]如何表示&#xff1f; d[ bi ]-d[ ai-1 ] > ci Edge:(ai-1 -> bi) val ci 另外&#xff1a; 0<d[i]-d[i-1]<1 对应边Ed…

typecho和wordpress模板了解、开发流程介绍、前台后台前端后端区分

网站模板搭建网站&#xff1a; 使用网站模板搭建网站很简单&#xff0c;只需要将相关文件放到你自己的服务器上面&#xff0c;之后在进行相关的配置即可。这里给大家介绍两款网站模板&#xff1a; typecho&#xff1a; 是一个轻量高效&#xff0c;简单操作就能搭建网站的模板…

*[topcoder]IncrementingSequence

http://community.topcoder.com/stat?cproblem_statement&pm12107 此题想了半天&#xff0c;当时瞥到了Greedy&#xff0c;所以就想着贪心&#xff0c;最后的方法又纸上画了一下应该是对的。就是排序后依次看是不是满足要求。证明就是如果对数字X&#xff0c;有a和b都能够…

在浏览器端调试代码并直接修改原文件、移动端虚拟键盘中实现搜索按钮

在浏览器端调试代码并直接修改原文件&#xff1a; 此调试方法可以避免在浏览器调试完代码后在到原文件手动修改代码的弊端&#xff0c;其具体方法如下&#xff1a; 1.先将要调试的页面在浏览器&#xff08;Google&#xff09;打开&#xff0c;这里小编打开桌面test文件夹中的…

Bootstrap简介、下载bootstrap及引入文件说明、响应式容器和满屏容器、栅格系统

Bootstrap简介&#xff1a; Bootstrap是Twitter&#xff08;推特&#xff09;开发的&#xff0c;目前最受欢迎的前端开源框架&#xff0c;基于jQuery用于开发HTML、CSS、JavaScript&#xff0c;简洁灵活&#xff0c;常用于开发响应式布局及移动端开发。其中文官方文档&#xf…

JavaScript和jQuery的学习

还有12天就要回学校了&#xff0c;我的假期计划还能实现吗&#xff1f;在这12天里&#xff0c;需要把JavaScript和jQuery学完。我知道这两个技术对于前端网页开发非常重要。前期把HTML和CSS学完了&#xff0c;学的不是特别深&#xff0c;只是简单的过一下&#xff0c;自认为HTM…

bootstrap中语义化标签、字体风格、文本布局、列表排列、特殊字体颜色及特殊背景颜色

语义化标签&#xff1a; bootstrap中提供一些语义化标签&#xff0c;它们自带样式&#xff0c;这里介绍几个样式比较明显的语义化标签&#xff1a; <!-- 1.bootstrap中mark标签定义一个有淡黄色背景的文本 --> <p><mark>hello</mark></p><!…

asp.net使用MVC4框架基于NPOI做导出数据到Excel表

NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI 3.x版本之上的&#xff0c;它可以在没有安装Office的情况下对Word/Exc…

bootstrap中表格、修饰图片、浮动、背景框、提示框及关闭提示框、元素淡入淡出及jQuery中操作类名

表格&#xff1a; bootstrap中用类定义了几个风格的表格&#xff0c;使用时给table标签加上类名即可&#xff0c;具体如下&#xff1a; 类名描述.table基础表格&#xff1a;标题加粗&#xff0c;只有水平的淡灰色边框线条&#xff0c;没有垂直方向的线条.table-striped条纹表…

系统数据监控

系统数据监控。 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading; using Arch.CFramework.CLoggingAdapter; using Ctrip.Mobile.AppDownload.Utility;namespace Ctrip.Mobile.AppD…