• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

stuano

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

php面向对象

定义类:class ClassName{}

实例化对象:$obj = new ClassName()

 

定义类常量:const DB_HOST = 'localhost'

访问类常量:Class Name::DB_HOST

定义成员属性:public $name = '张三‘

访问成员属性:$obj->name

伪变量$this:$this代表当前对象,只能用在成员方法中,只能调用对象属性和对象方法,$this->name或$this->showInfo() 

 

定义公共构造方法(系统方法,名称固定):

public function __construct(){

}

析构方法:

void __destruct(void) {

}

类的静态属性和静态方法:

class Student
{
	//私有的保存人数的静态属性:所有对象共享
	private static $count = 60;
	//公共的静态方法
	public static function showinfo(){
		$str = "当前文件名:".__FILE__;
		$str .="<br>当前函数名:".__FUNCTION__;
		$str .="<br>当前方法名:".__METHOD__;
		$str .="<br>班级人数:".Student::$count;
		echo $str;
	}
}
//在类外访问公共的静态方法
//访问类的内容(类常量、静态属性、静态方法),不需要创建对象,直接访问
Student::showinfo();

 $this 对比 self

$this 指向当前对象的指针,用来调用对象的属性和方法,只能在成员方法中使用,不能在静态方法中使用;

self是指向当前类的指针,用来调用类常量、静态属性、静态方法,可以用在成员方法和静态方法中使用。

关键字:

extends:继承

private:私有属性

public:公有属性

static:静态属性

final :最终类

abstract:抽象类

接口:

interface定义接口,implements实现接口

接口中只有抽象方法和常量,常量不能重写

抽象方法权限必须是public

 

类的自动加载:

函数:php7以下版本:__autoload($className);php7以上版本:spl_autoload_register($className)

 

对象克隆:

当完成克隆后,自动运行 __clone()

 

魔术方法:

__toString():当对象转成字符串时,自动调用的方法;

__invoke():当把对象当成函数调用时,自动调用的方法;
魔术方法:屏蔽错误:

__get($name):当对不可访问的属性进行访问时,自动调用的方法;

__set($name,$value):当对不可访问的属性进行赋值时,自动调用;

__isset($name):当对不可访问的属性调用isset()时,自动调用;

__unset($name):当对不可访问的属性调用unset()时,自动调用;

__call($function,$args):当调用不存在不可访问的方法时,自动调用;

__callStatic($function,$args):当用静态方法调用不存在不可访问的方法时,自动调用。

 

单例设计模式:

三私一公:

私有的静态的保存对象的属性;私有的构造方法:阻止类外new对象;私有的克隆方法:阻止类外clone对象;公共的静态的创建对象的方法。

 

数组变量序列化与反序列化:

$str = serialize($arr);

$arr = unserizlize($str);

 

posted on 2019-12-05 08:35  stuano  阅读(193)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3