类中的成员属性不能够用函数为其赋值。public age = rand(1,100);//这是错误的;

__get()   __set()  __isset() __unset()

final 用来修饰成员方法或类,被final修饰的类不能被继承,final修饰的方法不能重载。参考博客

const 定义的常量归类所有。类名::常量名  方式访问

statics  成员方法中使用了$this,那么这个成员方法就不能用statics修饰.

parent指向父类,可以访问父类的静态常量、静态属性,不能访问父类的非静态属性,可以调用父类的方法(不能是private方法,无论是否静态)

对象串行化:serialize()    默认情况是把整个对象串行化,准确说是对象里的属性,如果我只想串行化指定的成员属性。那需要使用一个魔术方法   __sleep()  ,调用serialize时触发。还有一个   __wakeup()   是在调用unserialize() 触发, 作用是在反串行化的时候可以修改成员属性。

__tostring() 使用echo输出对象时触发。验证码类可以使用来简化操作。

克隆:由于把一个对象赋值给另一个变量的时候默认是引用的(不是把值传递给另一个变量)。所以需要clone,才能得到一个新的一样的对象,改变其中一个对象的时候,另一个不会变。如果说克隆的时候想要改变某些属性,需要使用__clone()  在clone的时候触发。

class SubObject
{
static $instances = 0;
public $instance; public function __construct() {
$this->instance = ++self::$instances;
} public function __clone() {
$this->instance = ++self::$instances;
}
} class MyCloneable
{
public $object1;
public $object2; function __clone()
{ // 强制复制一份this->object, 否则仍然指向同一个对象
$this->object1 = clone $this->object1;
}
} $obj = new MyCloneable(); $obj->object1 = new SubObject();
$obj->object2 = new SubObject(); $obj2 = clone $obj; echo '<pre>';
print("Original Object:\n");
print_r($obj); print("Cloned Object:\n");
print_r($obj2); //手册中的示例

__call()    调用类中不存在的方法时触发。

__autoload()

单例设计模式:

 <?php

 class Mysql{
static private $link = null;
private function __construct(){
echo 1111;
} static public function connect(){
if(is_null(self::$link)){
self::$link = new self;//new self 是实例化
}
return self::$link;
}
}
//这样就实现了一个简单的单例设计模式
Mysql::connect(); //无论调用多少次这个方法,都只会输出一个

PHP回顾(面向对象)的更多相关文章

  1. Python知识回顾 —— 面向对象

    博客转载自 http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/linhaifeng/articles/62040 ...

  2. 洗礼灵魂,修炼python(41)--巩固篇—从游戏《绝地求生-大逃杀》中回顾面向对象编程

    声明:本篇文章仅仅以游戏<绝地求生>作为一个参考话题来介绍面向对象编程,只是作为学术引用,其制作的非常简易的程序也不会作为商业用途,与蓝洞公司无关. <绝地求生>最近很火,笼络 ...

  3. AJPFX:关于面向对象的封装

    1.回顾        面向对象 -- 注重的是结果,强调的是具备功能的对象.        面向过程 -- 强调的是函数,注重的实现的过程.        函数:对功能的封装.            ...

  4. day19_python_1124

    .01 昨日内容回顾 面向对象:1,将一些相似功能的函数集合到一起 类:具有相同属性和功能的一类事物. 对象:类的具体体现. 2,站在上帝的角度考虑问题,类就是一个公共模板, 类的结构: class ...

  5. JS高级学习历程-15

    昨天内容回顾 面向对象的私有成员.静态成员 私有成员:在构造函数里边定义局部变量,就是私有成员. 静态成员:在js里边,函数就是对象,可以通过给函数对象声明成员方式声明静态成员. 原型继承 关键字:p ...

  6. python25day

    内容回顾 面向对象的回顾 类 对象 怎么用 怎么继承 pickle模块 今日内容 继承(进阶的知识点) 经典类和新式类 python3所有类都继承object类 所有继承object的类都是新式类 不 ...

  7. python23day

    内容回顾 面向对象 类:是具有相同属性和相似功能的一类事物 对象/实例:具体的,一类可以有多个对象 实例化 练习 # 定义一个圆形类,半径是这个圆的属性,实例化一个半径为5的圆形,一个半径为10的圆形 ...

  8. 2、网络并发编程--套接字编程、黏包问题、struct模块、制作简易报头、上传文件数据

    昨日内容回顾 面向对象复习(json序列化类) 对象.类.父类的概念 三大特性:封装 继承 多态 双下开头的方法(达到某个条件自动触发) __init__:对象实例化自动触发 __str__:对象执行 ...

  9. Javascript基础回顾 之(三) 面向对象

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  10. 前端面试回顾---javascript的面向对象

    转:https://segmentfault.com/a/1190000011061136 前言 前一阵面试,过程中发现问到一些很基础的问题时候,自己并不能很流畅的回答出来.或者遇到一些基础知识的应用 ...

随机推荐

  1. Scala(一)安装

    一.环境信息 操作系统:cat /etc/redhat-release JDK:  java -version 二.下载Scala安装包 网址:https://www.scala-lang.org/d ...

  2. Spring注解Component原理源码解析

    在实际开发中,我们经常使用Spring的@Component.@Service.@Repository以及 @Controller等注解来实现bean托管给Spring容器管理.Spring是怎么样实 ...

  3. python基础知识0-2

    # !/usr/bin/env python # 提示输入用户名和密码 # 验证用户名和密码#     如果错误,则输出用户名或密码错误#     如果成功,则输出 欢迎,XXX! import ge ...

  4. Java反射理解(五)-- 方法反射的基本操作

    Java反射理解(五)-- 方法反射的基本操作 方法的反射 1. 如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2. 方法反射的操作 method.invoke(对象,参数列表) ...

  5. 解决radiobutton在gridview中无法单选的一种方法

    最近在项目中有个单选gridview中某一项的需求,使用radiobutton后发现,虽然最终选择出来的是一项,但是在页面上却可以选择多项,经过查看生成的html代码,发现生成的radio的name属 ...

  6. Upload Image to .NET Core 2.1 API

    原文地址:https://www.codeproject.com/Articles/1256591/Upload-Image-to-NET-Core-2-1-API using System; usi ...

  7. python numpy 的用法——diag函数

    当 np.diag(array) 中 array是一个1维数组时,结果形成一个以一维数组为对角线元素的矩阵 array是一个二维矩阵时,结果输出矩阵的对角线元素

  8. Python字符串、组合数据类型练习

    一.Python字符串练习 1.http://news.gzcc.cn/html/2017/xiaoyuanxinwen_1027/8443.html 取得校园新闻的编号. (这个方法就很多了,一般方 ...

  9. 通过javascript得到当前的日期和计算出该班级的平均分

    某班的成绩出来了,现在老师要把班级的成绩打印出来. 格式要求: 1.显示打印的日期. 格式为类似“XXXX年XX月XX日 星期X” 的当前的时间. 2.计算出该班级的平均分(保留整数). 同学成绩数据 ...

  10. pipenv虚拟环境使用方法

    1.打开cmd安装pipenv, pip install pipenv 2.新建工程目录,项目目录,然后cmd进入工程目录 基本命令: pipenv install                  ...