随笔分类 - PHP
摘要:<?php class MyPDO { private static $instance; //保存对象 private $host; //主机地址 private $dbname; //数据库名字 private $port; //端口 private $user; //用户名 private $
阅读全文
摘要:<?php //dsn 数据资源名称,里面内容没有先后顺序,但是数据库类型必须是小写mysql:的 //如果是本地host 可以省略,端口也可以省略,数据库名字和字符集也可以省略 $dsn="mysql:host=localhost;dbname=my_db;port=3306;charset=ut
阅读全文
摘要:1.获取当前页码数据 页码 Sql语句 1 select * from my_user limit 0 ,10 2 select * from my_user limit 10 ,10 3 select * from my_user limit 20 ,10 结论: $pageNo:页码 $star
阅读全文
摘要:循环输出数组 <?php $arr=["小王","小杜","小高","小刘"]; //重置数组指针,并且指向数组中第一个元素 reset($arr); while(key($arr)!==null){ //验证键是否有效 echo key($arr)."-". current($arr)."<br>
阅读全文
摘要:我们在前面学过魔术常量 比如 __LINE__ __FILE__ 魔术方法是自动调用的比如: 在给不可访问属性赋值时,__set() 会被调用。 读取不可访问属性的值时,__get() 会被调用。 当对不可访问属性调用 isset() 或 empty() 时,__isset() 会被调用。 当对不可
阅读全文
摘要:当我们向把数组或者对象 写入文本中的时候,会保存吗?答案是不会的?那就需要用到 序列化 序列化:serialize() 反序列化:unserialize() 数组的存储 <?php $arr=["中国","美国","韩国","新加坡"]; $file="./1.txt"; file_put_cont
阅读全文
摘要:单例模式:一个类只能有一个对象 我们都知道 创建对象有两种方法, 第一种是new 实例化 第二种是clone 克隆 三私一公 私有的属性保存对象,私有构造函数 阻止实例化,私有克隆模式 阻止克隆对象,公有方法创建对象 <?php /** * * 作用:单例模式 一个类只能有一个对象 * 应用场景:多
阅读全文
摘要:__autoload() 大家发现没,方法前面凡是带有__的 都是自动调用的,比如 __construct __destory 等 <?php /** * 作用:自动加载类 * @param 类名字 */ function __autoload($class_name){ require "./$c
阅读全文
摘要:集中成功优酷在代码块中发生的异常 在代码块中发生了异常直接抛出,代码块中不处理异常,将异常集中起来一起处理 使用的关键字 try:检测代码块 catch:捕获异常 throw:抛出异常 finally:无论有无异常都会执行,可以省略 Exception:异常类 在文档中Exception 类中有属性
阅读全文
摘要:<?php $stu=new class(){ public $name='tom'; public function __construct(){ echo "我是匿名类"; } }; #1:如果类只被实例化一次就可以使用匿名类。 #2:好处,实例化完毕后就回收了类的空间
阅读全文
摘要:思考:PDOException可以捕捉到异常,也有其他模式,那么在实际开发的时候我们到底是使用PDO的那种错误模式呢? 引入:其实PDO之所以提供了这么多模式,就是要使用人员根据实际情况来选择模式,如果一个项目中,需要我们去控制项目bug,那么就适合使用异常模式来进行处理 PDOException异
阅读全文
摘要:思考:在MySql中,有一种事务功能,能够帮助实现哪些需要多个步骤操作,然后一次性完成的,那么PDO中是如何实现的呢? 引入:其实,事务操作本质上是一种SQL操作,也就是说利用前面所说的写操作(事务都是写操作),就可以实现,而在PDO中,当然也提供 了一定的封装来实现这个功能,从而避免了一些简单的固
阅读全文
摘要:思考:既然PDO这么强大,可以支持很多数据库,为什么一开始不直接使用PDO呢? 引入:PDO是一种纯面向对象方式实现的扩展,需要在大家掌握了php面向对象之后,才方便学习和理解 不过在实际开发中,现在基本都是通过PDO来实现数据库操作 PDO类基本应用【掌握】 定义:PDO是php Data Obj
阅读全文
摘要:思考:php支持很多数据库,因此有很多扩展提供给开发者使用,而绝大部分数据库的支持都是需要开发者再次进行封装的(因为初始化不一样,其他操作类似),那么这个时候如果一个团队要 做成支持多数据库的话,岂不是要封装所有要吃屎数据库的操作类? 引入:如果按照数据库支持的角度出发,的确针对不同的数据库需要封装
阅读全文
摘要:思考:在php中,函数类和常量都是不允许同名的,一旦同名就会出现冲突。但是在大型项目开发中,团队开发很难避免出现同名结构,此时就会出现同名冲突 解决的方案只能是刻意去控制不同名吗? 引入:从开发角度出发,最好的办法就是保证不同名。这样的效率和效果都是最好的,但是在大型项目中,不同团队负责的模块可能不
阅读全文
摘要:思考:如果我们想把对象内部的所有属性都输出出来,该如何实现呢? 引入:从业务的角度出发,一般不会有此需求,因为对象内部有私有、受保护和共有属性,而能够被外部访问的只有共有属性 如果只是单纯的想了解对象内部有哪些共有属性,可以使用foreach对对象进行遍历 1.定义遍历对象,其实就是指将对象中的所有
阅读全文
摘要:思考:php对象复合数据类型,如果直接echo 输出对象会报错的,这样的报错会给用户体验不好,有没有办法能够解决这类问题呢? 引入:虽然上述问题出现是因为程序员的误操作,但是的确有可能出现这样的问题,尤其是我们的程序是给外部调用时,所以,面向对象关于很多对象可能出现 了一种容错机制,这种机制叫做重载
阅读全文
摘要:思考:php中继承是单继承,如果某个类有成员要被其他类使用,就需要成为其他类的父类才行,这样可能会导致继承链会长,合适吗? 引入:从继承的角度出发,继承链可以解决问题,但是的确效率会打折扣,同时,如果某些功能是共性使用,但是并不符合继承条件(不属于同一类) 那么使用继承也有所违背面上对象规则,此时可
阅读全文
摘要:思考:在大型项目中,如果想要规定某些类必须有某些方法,我们可以使用丞相类来进行规范吗? 引入:抽象类的目的就是用来规范一些共性子类的结构,必须实现某些指定的方法的,在php还有一种专用来规范类内容实现方法的结构叫做接口。 接口 interface【掌握】 定义:接口,使用interface关键字定义
阅读全文