PHP5 面向对象(学习记录)

yipeiwu_com6年前PHP代码库
1,继承extends 只能单继承
public protected private 属性
__construct()
__destruct()
__get()读取私有成员
__set($n,$v) 设置私有成员
2,访问父类函数 :: (c++里面也叫作用域符)
7
3,重载 和 父类名字相同的 函数

4,抽象类 abstract 必须继承 不能被实例话 并且 必须要重写抽象函数 只要类中有一个函数是静态的 那么类必须为静态

5,常用关键字
1,final 定义类的时候 类 不能被继承 定义 函数时 函数 不能 重载
2,self 用来访问未实例化类中的属性或者方法 (静态或者常量) 使用方法 self::属性
3,static 定义静态成员或者方法只会在内存出现一次 (静态方法内 不能出现非静态内容)
4,const 定义常量 只能修饰成员属性 修饰的常量 不加 $
6,接口的应用 interface接口定义关键字 implements引用
接口:全部为抽象方法,不用加 abstract 属性 应该为常量
interface Demo{}
class T implements Demo{} 可以引用多个接口
先继承后接口 class a extends root implements Demo{}
接口继承接口 interface D extends Demo

7,多态 php 是 弱类型语言 所以支持不是很完美
instanceof 测试 一个实例是否来自一个类 example: a{} $c = new a; if($c instanceof a)
8,对象 作为参数传递 给函数 时 不运行 构造函数 并且 并非是复制副本,而是传递对象地址

9,对象 描述配置 __tostring(){内容} 直接echo 对象

10,对象 异常处理 __call($name,$value) 调用不存在的方法名时 自动吸收 你的错误 并且显示$name 和 错误参数的 值

11,对象克隆 __clone()放在 类里面 clone关键字 (相当与c++的拷贝函数)

12,自动载入 function __autoload($class_n){
include($class_n.'php');
} 当自行 new 一个类时 自动载入 inlcude()一个类

相关文章

PHP 读取大文件的X行到Y行内容的实现代码

需要读取一个文件的几行内容,但是文件比较大,所以研究了下php读取大文件的几行内容的方法,写了一个方法,代码如下(加了注释): 缓存文件如果能够保存在一行, 而利用算法读取指定的行数,...

php和C#的yield迭代器实现方法对比分析

本文实例讲述了php和C#的yield迭代器实现方法对比。分享给大家供大家参考,具体如下: yield关键字是用来方便实现迭代器的,免去了手工写迭代器的繁琐。迭代器常被用来实现协程,所以...

php使用codebase生成随机数

有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次。前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空。那么你会如何填补这个漏子? 当然向上级...

php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法

在php命令行下执行.php文件时,执行环境的工作目录(getcwd( ))是php命令程序(php.exe)所在目录,所以如果想在文件内使用相对路径时,要先切换当前的工作目录才行。 小...

PHP直接修改表内容DataGrid功能实现代码

PHP直接修改表内容DataGrid功能实现代码

由于需要连接Oracle所以从二次开发和页面样式来说个人觉得phpMyDataGrid还是比较好上手。 1. 创建测试数据库和表 create database `guru`;...