php 教程-php 接口的声明与使用
第七章(13)面向对象详解_接口的声明与使用
interface 接口名称{所有的属性都必须是常量,所有的方法都必须是抽象的,所有的成员都必须是公有的}
接口的作用:是一个规范.
实现接口时使用implements<继承接口的关键字>.
可以使用抽象类去实现一个接口的部分方法.
使用类去实现接口中的全部方法.
接口的使用实例:
interface<声明接口的关键字> Ren1
{
const XINGMING="张三";
function shuohua1();
function shuohua2();
}
interface Ren2 extends<接口继承接口可以使用继承关键字> Ren1
{
function shuohua3();
function shuohua4();
}
interface Ren3{function shuohua5();}
interface Ren4{function shuohua6();}
class Ren5{function shuohua7(){echo "7777<br>";}}
class Ren extends Ren5 implemenrs<继承接口的关键字,必须先继承类再继承接口,可以同时继承多个接口> Ren2,Ren3,Ren4
{
function shuohua1(){echo "1111<br>";}
function shuohua2(){echo "2222<br>";}
function shuohua3(){echo "3333<br>";}
function shuohua4(){echo "4444<br>";}
function shuohua5(){echo "5555<br>";}
function shuohua6(){echo "6666<br>";}
<完整所有继承过来的抽象方法>
}
$r=new Ren(); echo Ren::XINGMING."<br>";
$r->shuohua1(); $r->shuohua2(); $r->shuohua3(); $r->shuohua4(); $r->shuohua5(); $r->shuohua6(); $r->shuohua7();
实例输出结果:
张三 1111 2222 3333 4444 5555 6666 7777
第七章(14)面向对象详解_多态的应用
多态的应用:把子类对象复制给父类的引用,然后去调用父类的方法,但是执行子类被覆盖父类的那个方法.
多态是指一段程序能够处理多种类型对象的能力.
第八章(1)正则表达式(功能介绍及原子)
正则表达式是用描述字符排列模式的一种语言规则.
正则表达式的作用:字符串的模式分割,匹配,查找,替换.
普通字符:就是由所有未显示指定为元字符的打印和非打印字符组成.<所有的大小写字母字符,所有数字,所有标点符号以及其它一些字符>
原子就是普通字符.
原子表[]:就是在[]里面有的字符任意匹配一个单个字符.
[^] :匹配除[^]里面外的任意字符.
d :匹配0-9的数字.
D :匹配除数字外的任意字符.
w :匹配字母,数字,下划线的任意字符.
W :匹配除字母,数字,下划线的任意字符.
s :匹配空白符.
S :匹配除空白符外的任意字符.
f :匹配换页符.
n :匹配换行符.
r :匹配回车符.
t :匹配制表符.
v :匹配垂直制表符.
元字符:有特殊功能和用途的字符.
* :匹配其前原子0,1或多次.
+ :匹配其前原子1次或多次.
? :匹配其前原子0次或1次.
. :匹配除换行符外的任意字符.
| :匹配1个或多个.
^ :匹配字符串串首的原子.
$ :匹配字符串串尾的原子.
b :匹配单词的前或后边界.
B :匹配非单词边界.
限定符:
{m} :表示其前原子恰好出现m次.
{m,n} :表示其前原子至少出现m次,最多出现n次.
{m,} :表示其前原子出现不能少于m次.
() :表示在()里面的所有是一个原子.
第七章(11)面向对象详解_对象的串行化和反串行化
串行化就是把对象转化成二进制的字符串 (要串行化的对象名称).
反串行化就是把二进制化字化为对象 unserilize(要反串行化的对象名称).
符串转串行化标准:
$r1=new Ren("张三",20,"男");
$str=($r1<要串行化的对象>);
$file=fopen("tmp.txt"<串行化保存到的文件地址>,"w"<写>);
fwrite($file,$str);
fclose($file);
反串行化标准:
include"ren.php"<将串行化对象的php移入反串行化的php中>;
$file=fopen("tmp.txt"<要反串行化的文件地址>,"r"<读>);
$str=fread($file,filesize("tmp.txt"<读的长度,填文件地址就是文件有好长就读好长>));
fclose($file);
$r=unserilize($str);
$r->shuohua();
在什么情况下将对象串行化:
1.对象在网络中传输的时候.
2.将对象存入文件或数据库的时候.
__sleep(){$arr=array(要串行化的属性);return $arr;}串行化部分属性时自动调用的方法.
__wakeup()反串行化时自动调用的方法<可以将串行化的属性在反串行化时初始值>.
第七章(12)面向对象详解_抽象方法和抽象类
抽象方法:在类里面没有方法体的方法就是抽象方法.
abstract<抽象方法关键字> function 方法名();.
抽象类:抽象类不能实例化对象的,此类就是抽象类,抽象类不能实例化 对象,就要在此类前面加 abstract来修饰.
抽象类的用途:就相当于一个规范,如果要抽象类里面的原有的功能实现就必须以抽象类作为父类做一个子类,然后覆盖完整抽象类里面的抽象方法,才能使抽象类里面的功能一一实现.
第七章(10)面向对象详解_常用的自动调用的方法
__tostring() 是直接输入对象时自动调用的方法.
<如果想在直接输入对象时得到什么结果,可以将想要得到结果的代码写在__tostrimg()里面>
__clone() 对新克隆出来的副本进行属性初始化时自动调用的方法.<如果一个对象想做成两个对象,而不是一个对象有两个名称时,可以使用__clone()的方法,此时在__clone()里面的$this代表副本本身,$that代表原本本身,在书写时不能直接写成 原本对象名称=副本对象名称,这仅代表一个对象有两个名称,应写成 原本对象名称=clone副本对象名称,这样才是真正两个同样的对象,副本的__clone()里面还可以加上其它的输出>
__call(里面要有两个参数,调用不存在的方法名称传给第一个参数,不存在的列表传给第二个参数) 调用不存在对象方法时自动调用的方法.
__autoload(调用其它php中类的名称传给此参数) 调用其它php里面的类到本php中产生对象时自动调用的方法.<__autoload()并不是写在本对象内部的,而是在对象外部使用的方法>
第七章(4)面向对象详解_构造方法与析构方法
特殊的引用$this的使用
实例说明:
class Ren
{
var $xingming;
var $nianling;
var $xingbie;
function shuohua()
{echo "我的姓名是:".$this->xingming.",我的年龄是:".$this->nianling.",我的性别是:".$this->xingbie."<br>";}
function zoulu()
{echo "我在走路<br>";}
function chifan()
{echo "我在吃饭<br>";}
}
$r1=new Ren(); $r2=new Ren(); $r3=new Ren();
$r1->xingming="张三"; $r2->xingming="李四"; $r3->xingming="王五";
$r1->nianling=90; $r2->nianling=23; $r3->nianling=41;
$r1->xingbie="男"; $r2->xingbie="女"; $r3->xingbie="男";
//人1.2.3各自说出自己的姓名.年龄.性别:
$r1->shuohua(); $r2->shuohua(); $r3->shuohua();
输出结果:
我的姓名是:张三,我的年龄是:90,我的性别是:男
我的姓名是:李四,我的年龄是:23,我的性别是:女
我的姓名是:王五,我的年龄是:41,我的性别是:男
$this的作用:代表对象的一个属性,相当于第一人称"我"的概念.
构造方法的特点:名称与类相同,对象一产生的时候自动调用,去初始化成员属性.
实例说明:(此实例是在php4里面的声明方法)
class Ren
{
var $xingming;
var $nianling;
var $xingbie;
function Ren($xingming,$nianling,$xingbie)
{
$this->xingming=$xingming;
$this->nianling=$nianling;
$this->xingbie=$xingbie;
}
function shuohua()
{echo "我的姓名是:".$this->xingming.",我的年龄是:".$this->nianling.",我的性别是:".$this->xingbie."<br>";}
function zoulu()
{echo "我在走路<br>";}
function chifan()
{echo "我在吃饭<br>";}
}
$r1=new Ren("张三",90,"男");
$r2=new Ren("李四",23,"女");
$r3=new Ren("王五",41,"男");
$r1->shuohua(); $r2->shuohua(); $r3->shuohua();
此例如上例输出结果完全相同.
在php5版本中的构造方法是function__construct(),不用写类名,作用相同.
析构方法__destruct()在程序结束前释放要释放的东西的方法.
实例说明:
class Ren
{
var $xingming;
var $nianling;
var $xingbie;
function __construct($xingming,$nianling,$xingbie)
{
$this->xingming=$xingming;
$this->nianling=$nianling;
$this->xingbie=$xingbie;
}
function shuohua()
{echo "我的姓名是:".$this->xingming.",我的年龄是:".$this->nianling.",我的性别是:".$this->xingbie."<br>";}
function zoulu()
{echo "我在走路<br>";}
function chifan()
{echo "我在吃饭<br>";}
function __destruct()
{echo $this->xingming."再见<br>";}
}
$r1=new Ren("张三",90,"男");
$r2=new Ren("李四",23,"女");
$r3=new Ren("王五",41,"男");
$r1->shuohua(); $r2->shuohua(); $r3->shuohua();
输出结果:
我的姓名是:张三,我的年龄是:90,我的性别是:男
我的姓名是:李四,我的年龄是:23,我的性别是:女
我的姓名是:王五,我的年龄是:41,我的性别是:男
王五再见 李四再见 张三再见
相关文章
- 今天小编在这里就来给Painter的这一款软件的使用者们来说一说绘制红衣喝酒男水粉画效果的教程,各位想知道具体绘制步骤的使用者,那么下面就快来跟着小编一起看一看教程...2016-09-14
iPhone6怎么激活?两种苹果iPhone6激活教程图文详解
iPhone6新机需要激活后才可以正常使用,那么对于小白用户来说,iPhone6如何激活使用呢?针对此问题,本文就为大家分别介绍Wifi无线网络激活以及iPhone6连接电脑激活这两种有效的方法,希望本文能够帮助到大家...2022-09-14- 今天小编在这里就来给各位photoshop的这一款软件的使用者们来说下制作雨中野外孤独行走的一头牛海报的教程,各位想知道具体制作方法的使用者们,大家就快来看一看小编给...2016-09-14
- 今天小编在这里就来给Painter的这一款软件的使用者们来说一下绘制帅气卡通魔法王子漫画的具体教程,各位想知道绘制步骤的使用者,那么下面就快来跟着小编一起看一看教程...2016-09-14
- 今天小编在这里就来给各位Illustrator的这一款软件的使用者们来说说鼠绘堆雪人的孩童矢量插画的教程,各位想知道具体绘制方法的使用者们,那么各位就快来跟着小编来看看...2016-09-14
- 今天小编在这里就来给美图秀秀的这一款软件的使用者们来说下究竟该怎么给照片天空加蓝天白云的教程,各位想知道具体制作步骤的,那么下面就来跟着小编一起看看吧。 ...2016-09-14
- 支付宝支付在国内算是大家了,我们到处都可以使用支付宝了,下文整理介绍的是在安卓app应用中使用支付宝进行支付的开发例子。 之前讲了一篇博客关与支付宝集成获取...2016-09-20
- 今天小编在这里就来给llustrator的这一款软件的使用者们来说一说绘制扁平化风格卡通警察护士空姐肖像的教程,各位想知道具体绘制步骤的使用者们,那么下面就快来跟着小编...2016-09-14
- 今天小编在这里就来给Illustrator的这一款软件的使用者们来说一下绘制一个方形的录音机图标的教程,各位想知道具体绘制方法的使用者们,那么下面就来看一下小编给大家分...2016-09-14
- 今天小编在这里就来给photoshop的这一款软件的使用者们来说一说简单制作一个搞笑的换脸表情包的教程,各位想知道具体制作方法的使用者们,那么大家就快来看一看教程吧。...2016-09-14
- 今天小编在这里就来给各位photoshop的这一款软件的使用者们来说说给手绘画调色变换场景的后期教程,各位想知道具体后期处理步骤的使用者们,那么大家就快来跟着小编来看...2016-10-02
- 有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
- 今天小编在这里就来给美图秀秀的这一款软件的使用者们来说一下让你胸丰满起来的处理教程,各位想知道具体处理步骤的,那么下面就快来跟着小编一起看一下教程吧。 给...2016-09-14
- 今天小编在这里就来给Painter的这一款软件的使用者们来说一下绘制雷神传插画的教程,各位想知道具体绘制步骤的使用者,那么下面就快来跟着小编一起看看绘制方法吧。 ...2016-09-14
- ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。  ...2017-07-06
- 本文主要对C# 类的声明进行详细介绍。具有一定的参考价值,下面跟着小编一起来看下吧...2020-06-25
- 许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
使用insertAfter()方法在现有元素后添加一个新元素
复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31jQuery 1.9使用$.support替代$.browser的使用方法
jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31- 联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进...2015-11-24