强哥PHP面向对象学习笔记
面向对象编程OOP
目标:
重用性、灵活性、扩展性
特点:
封装、继承、多态
类的书写方法:
class PersionName{
}
特征:属性。其实就是变量
行为:方法。其实就是函数
1.实例化对象
2.对象中成员的访问
3.特殊的对象引用$this
4.构造方法和析构方法
魔术方法:
__construct() //构造方法
__destruct() //析构方法
__toString() //
对象链:
$obj->a()->b();
//a里面应该return $this;
属性的作用域:
1.在类体内都可以使用
2.局部变量的使用
类方法传参:
$obj->say('yujie');
全局变量、局部变量、对象属性、超全局变量的作用范围
全局变量:整个页面都可以使用,函数里要用全局变量必须加global
局部变量:函数内部使用
对象属性:在整个为类中使用,包括子类和父类
超全局变量:页面的任何地方都能使用
类的继承特性:
class It extends Person{}
parent::abc();
与类有关的测试函数:
1.获取对象的类
get_class();
2.获取对象的父类
get_parent_class();
3.获取类的属性
get_class_vars();
4.获取对象的属性
get_object_vars();
5.获取类和对象的方法
get_class_methods();
6.对象或类中是否含有say方法
method_exists("Person","say");
7.对象或类中是否含有name属性
property_exists("Person","name");
8.测试对象是否属于某个类
$p1 instanceof person
9.是否是对象
is_object();
10.测试类是否存在
class_exists();
11.测试接口是否存在
interface_exists();
分页类:
1.需要赋初值的东西全放到__construct()
2.public属性能赋值初值,不能参与任何运算
3.运算顺序
4.类中只有方法能调用并执行
封装:
private function start(){}
三个修饰词:
public //子类和外部都可以使用
protected //子类可以使用
private //本类可以使用
抽象类: //含有抽象方法的类叫抽象类
abstract class prc(){}
接口: //只含有抽象方法的类叫接口
interface Usb{}
多态: //通过一个函数去加工不同形态的类对象
魔术方法:
1.__construct
2.__destruct
3.__call
4.__get
5.__set
6.__isset
7.__unset
8.__toString
9.__clone
自动加载:
__autoload
function __autoload($classname){
include($classname.".class.php");
}
$user = new Model("user");
关键字:
1.const
类常量
可以修饰属性
const HOST='localhost';
类外面:
Model::HOST;
类里面:
self::HOST;
2.static
静态变量
可以修饰属性和方法
static $objs=0;
类外面:
Model::$objs;
类里面:
self::$objs;
3.final
无法覆盖
修饰类和方法
最终版本
PDO数据库抽象层:
1.pdo类
2.pdo预处理类
3.pdo异常处理类
mysql数据库支持:预处理和事务机制
生成PDO数据库连接对象
$pdo = new PDO("mysql:host=localhost;dbname=test","root","123456");
设置操作字符集
$pdo -> exec("set names utf8");
设置从结果集预处理对象中获取数据的默认数组类型
$pdo -> setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
执行增删改操作:
exec()
执行查找操作
query()
获得最后一次插入的ID
lastInsertId()
设置结果集预处理对象中获取数据的默认数组类型:
setAttribute()
查看结果集预处理对象中获取数据的默认数组类型:
getAttribute()
PDO::ATTR_ERRMODE(pdo报错模式)
PDO::ERRMODE_SILENT
PDO::ERRMODE_WARNING
PDO::ERRMODE_EXCEPTION
PDO::ATTR_DEFAULT_FETCH_MODE(PDO获取模式):
PDO::FETCH_NUM
PDO::FETCH_ASSOC
PDO::FETCH_BOTH
异常处理警报:
1.getMessage();
2.getFile();
3.getLine();
事务机制:
1.myisam不支持
2.InnoDB支持
预处理机制:
1.预先准备sql发送到服务器上
$obj = $pdo -> prepare($sql);
2.改预处理语句绑值,并设置绑定值类型
$obj -> bindValue(1,0,PDO::PARAM_INT);
3.执行这条语句
$obj -> execute();
强哥PHP面向对象学习笔记的更多相关文章
- 强哥node.js学习笔记
node后端语言: nodejs学习大纲:1.node安装2.node repl开发3.node sublime开发4.node 使用5.node 中创建第一个应用6.node 回调函数7.node ...
- PHP:面向对象学习笔记,重点模拟Mixin(掺入)
背景 相对于Python.Node和Ruby来说PHP算是一门容易学习和使用的语言,因为这个特点也使其成为WEB开发领域的佼佼者,本文记录一下我对PHP面向对象部分的学习笔记. 先来一个复杂的例子:M ...
- php面向对象学习笔记
PHP 面向对象技术(全面讲解) Ø 主要内容 v 1.面向对象的概念 v 2.什么是类,什么是对象,类和对象之间的关系 v 3.什么是面向对象编程呢? v 4.如何抽象出一个类? v 5.如何实例化 ...
- web进阶之jQuery操作DOM元素&&MySQL记录操作&&PHP面向对象学习笔记
hi 保持学习数量和质量 1.jQuery操作DOM元素 ----使用attr()方法控制元素的属性 attr()方法的作用是设置或者返回元素的属性,其中attr(属性名)格式是获取元素属性名的值,a ...
- 马哥Linux base学习笔记
介绍课程: 中级: 初级:系统基础 中级:系统管理.服务安全及服务管理.shell脚本 高级: MySQL数据库: Cache & storgae 集群: Cluster lb: 4la ...
- python面向对象学习笔记(一)
粘贴一些自学过程中的笔记大纲,源文本在pycharm里面写的,有点乱整理一下,部分内容有待补充,书写不一定100%正确,全当数据备份了. 1.面向对象的特性 #你写代码时什么使用面向对象 #处理比较复 ...
- C#面向对象学习笔记概要
1.面向对象不是取代面向过程的. 2.面向对象的三个特性:封装.继承.多态. 3.字段.方法.属性(后面讲)都可以叫做类的成员,他们都需要定义访问级别.访问级别的用处在于控制成员在哪些地方可以被访问, ...
- js面向对象学习笔记(五):tab切换
重点是this指向问题 <style> .hide{display: none;} #box div,#box1 div{display: none;} .hover{background ...
- JavaScript面向对象学习笔记
JavaScript 常被描述为一种基于原型的语言 (prototype-based language)--每个对象拥有一个原型对象,对象以其原型为模板.从原型继承方法和属性.原型对象也可能拥有原型, ...
随机推荐
- Sentinel全局Feign默认熔断设计实现
写在前面 用XMind画了一张导图记录Spring Cloud Alibaba的学习笔记(源文件对部分节点有详细备注和参考资料,由于太大就没展示全部,欢迎关注我的公众号:阿风的架构笔记 后台发送[导图 ...
- OO_Unit1总结
OO的第一单元作业告一段落,这周是总结而不是码代码,甚至心中有点落空感.OO课给我的一周构建了一个完整的循环,从周二的作业发布到接下来几天的思考和构建程序,再到面向中测进行一部分的bug修复,最后到互 ...
- 02.ElementUI源码学习:babel配置
书接上文,接下来项目将引入babel支持ES6+语法兼容. Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行 ...
- 强大的工具(一):Capslock+ 3.x版本
1 概述 作者终于把Capslock+更新到了3.x版本了,所以就更了这篇博客. 2.x版本的可以戳这里. 3.x版本与2.x版本的主要不同是更新了新的键盘布局,更加顺手,下面让我们一起来看一下吧. ...
- C#入门到精通系列课程——第2章编写C#程序
◆本章内容 (1)熟悉Visual Studio 2017开发环境 (2)编写第一个C#程序 (3)C#程序结构预览 (4)程序编写规范 (5)难点解答 ◆本章简述 要学习C#编程,必然要熟悉C#程序 ...
- .NET Core - 自定义项目模板
前言: 前面介绍 自定义项目模板 中介绍了一种简单的方式--通过创建项目导出为项目模板方式实现.本次将采用dotenet cil(手脚架)来创建项目模板. 那么,我们首先看下当前dotnet 支持的项 ...
- ESP32音频开发板ESP32-Korvo V1.1踩坑
电池供电ESP32-Korvo V1.1开发板供电电压低于3.9V不断复位: 报错->Brownout detector was triggered 断电探测器触发复位 根据同行资料发现,禁用断 ...
- JEET W1S运动蓝牙耳机简评
对于我这种喜欢运动的人来说,很早之前就一直想买个运动蓝牙耳机了.这次正好有此机会可以评测来自JEET的W1S运动蓝牙耳机,真的是非常的幸运! 终于,在期盼中,我的来自深圳的快递隔了四天终于到了!JEE ...
- TLS实现代码段加密
刚开始见到这个思路是看到周大师用这个东西做的免杀,当时感觉这个想法很好,但是由于当时对PE结构了解的少,看到二进制的东西就打怵,所以当时也没能成功的去实现这个思路,只是简单的记录了一下TLS的特性,直 ...
- 【hugo】- hugo 博客 添加鼠标单击特效
hugo 博客 监听鼠标点击事件,添加动画效果 js下载 链接:https://pan.baidu.com/s/1SZu76WdEXRxLCfqJ2lbbtQ 密码:r056 移入hugo博客中 打开 ...