面向对象

程序分为两种,一种是面向过程的,另一种是面向对象的。之前的学的都是面向过程的,按部就班的一步一步的按照顺序往下走。

  面向对象:

1.什么叫做对象

一切皆为对象(一个对象由一组属性和有权对这些属性进行操作的一组服务的封装体)。

2.什么叫做类

类是具有相同属性和服务的一组对象的集合。

做类

class Ren//关键字class,是用来定义类的,class后面跟类名,类名的首字母一般要大写,后面跟{}。
{
//变量和方法来描述人类的特征 //成员变量
public $name = "张三";
private $sex = "男";
//成员方法
public function Speak()//成员方法一般是public,默认的也是public。
{
echo "正在讲话";
}
}
//访问修饰符
//public代表公有的,在任何地方都可以访问的。
//protected 受保护的,只能在该类或该类的子类中访问。
//private代表私有的,只能在该类中访问。 $r = new Ren();//实例化对象,代表从类中生成一个对象。
//var_dump($r);//出现的结果中有object,代表对象。 echo $r=>name;//如果赋值就在后面加上值,如果取值就可以直接取值。 $r->name="李四";//赋值。其它语言用的是.,php用的是->。
var_dump($r);
//构造方法
class Ren
{
public $name;
public $sex; //构造方法
//function Ren($n)//构造方法的名称就是类名,要和类名一致。
function __construct($n)//更高的版统一用本用__constract($n)构造,双下划线,不再用上面的写法。
{
//注意不能直接写$sex=$n,因为sex是属于类的,是抽象的,虚拟的。而对象里面的sex是具体的,赋值要对具体对象赋值。
//this关键字,在类里面代表该对象。
$this->sex = $n;
}
public function Speak()
{
echo "正在讲话";
}
}
$r = new Ren("男");
//构造方法,始终存在,如果不写也是存在的。
var_dump($r);

构造方法有两个特殊点:

1.写法特殊

2.执行事件特殊,执行时间是在$r = new Ren();的时候就执行。

  研究类的时候,首先要看类的构造方法,因为如果使用这个类就要造对象,造对象时就会用到构造方法。看构造需不需要传参数,如果需要传参数,就写一个参数传过去把对象造出来。

析构方法:__destruct

  析构方法是在对象释放的时候执行,函数用完以后不再用了,就要从内存中释放,也是自动调用。

__tostring:可以用来输出对象

里面要有一个return

function __tostring()

{

  echo"这个类是人类";

}

10月24日上午PHP面向对象的更多相关文章

  1. 2016年10月24日 星期一 --出埃及记 Exodus 19:8

    2016年10月24日 星期一 --出埃及记 Exodus 19:8 The people all responded together, "We will do everything th ...

  2. SPSS 2019年10月24日 今日学习总结

    2019年10月24日今日课上内容1.SPSS掌握基于键值的一对多合并2.掌握重构数据3.掌握汇总功能 内容: 1.基于键值的一对多合并 合并文件 添加变量 合并方法:基于键值的一对多合并 变量 2. ...

  3. Gitbook环境搭建及制作——2019年10月24日

    1.gitbook介绍 GitBook 是一个基于 Node.js 的命令行工具,支持 Markdown 和 AsciiDoc 两种语法格式,可以输出 HTML.PDF.eBook 等格式的电子书.可 ...

  4. 10月24日下午PHP封装

    class Ren { private $name; private $sex; private $age;//年龄必须在18-50岁之间 function __construct($n) { $th ...

  5. Week7(10月24日)

    Part I:提问  =========================== 1.数据验证属性的练习. 按要求写出教室和课程的模型类. (1)教室类主键不自动增值,手工输入. (2)教室名字不超过10 ...

  6. 10月30日上午MySQL数据库的修改(从网页上实现对数据库的更改)

    从网页页面上对数据库进行更改,连接着之前做的增加.删除.查询. 1.先做一个修改页面 <body> <!--这个页面需要让用户看到一些数据,所以不是一个纯php页面,页面效果和增加页 ...

  7. 10月28日上午 PHP数据访问

    1.建一个连接(连接PHP和MYSQL) $db = new MySQLi("localhost","root","666","t ...

  8. 10月25日上午PHP继承多态

    概念:子类可以继承父类的一切 方法重写:在子类里面对父类的方法进行重写,实现自己独特的功能.特点:单继承:一个子类只能有一个父类,一个父类可以派生出多个子类.override重写(子类对父类的重写) ...

  9. 10月23日上午PHP数组

    正则表达式 1.替换 $s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo ...

随机推荐

  1. MongoDB学习笔记~Update方法更新集合属性后的怪问题

    回到目录 在对MongoDB进行封装后,对于Update更新对象里的集合属性时出现了一个现象,让人感到很恶心,人家更新前是个美丽的Array,但是更新之后集合对象变成了键值对,键是集合的类型名称,值是 ...

  2. .NET笔记(二)

    null合并运算符 ?? 运算符称作null 合并运算符.如果此运算符的左操作数不为null,则此运算符将返回左操作数:否则返回右操作数. 使用Average而产生的一个错误 因为数据中有DBNull ...

  3. iteye上总结的编程精华资源

    原文:http://www.iteye.com/magazines/130 博客是记录学习历程.分享经验的最佳平台,多年以来,各路技术大牛在ITeye网站上产生了大量优质的技术文章,并将系列文章集结成 ...

  4. STM32 KEIL不能输入仿真引脚端口error 65: access violation at 0x40021000 : no 'read' permission

    使用MDK自己创建一个STM32F103ZE核的项目 加入源码后编译,正常,在线仿真单步执行出现如下问题 error 65: access violation at 0x40021000 : no ' ...

  5. java设计模式之模板方法模式

    模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中. 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.通俗的说的就是有很多相同的步骤的,在某一些地方可能有一些差 ...

  6. Android与Struts2简单json通信

    具体要求是: 服务器端得到客户端传递来的数据,并返回给客户端一条json格式的字符串 闲话不多说,直接上代码 首先是服务器端代码:建立一个web工程,导入struts2和json的jar包,并在web ...

  7. NYOJ 333

    http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数. ...

  8. 原生态ajax

    用户名是否被注册过? 创建出注册信息: <h1>注册信息</h1> <input type="text" name="txtName&quo ...

  9. 修改js confirm alert 提示框文字的简单实例

    修改js confirm alert 提示框文字的简单实例: <!DOCTYPE html> <html> <head lang="en"> & ...

  10. Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime

    Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime        周银辉 我的mac os 版本是10.9.2,  JDK配置得好好的,但打开eclipse时还是提示需 ...