面向对象

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

  面向对象:

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. IIS不能下载ini文件

    1.打开IIS. 2.选择站点或者存放*.ini文件的目录,右键菜单中选择属性. 3.选择“HTTP头”选项卡. 4.点击“MINE类型”. 5.点击“新建”. 6.这是跳出一个对话框,在“扩展名”一 ...

  2. 常见博客API

    新浪博客 http://upload.move.blog.sina.com.cn/blog_rebuild/blog/xmlrpc.php 网易博客 http://os.blog.163.com/ap ...

  3. OpenStack 企业私有云的若干需求(6):大规模扩展性支持

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  4. NOIP2013货车运输[lca&&kruskal]

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...

  5. [No000089]String的(补空位)左对齐,(补空位)右对齐

    using System; namespace Chinese中文排序Sort { internal class Program { /// <summary> /// 取子字符串 /// ...

  6. git clone Linux 源码并切换TAG

    想从github上下载一个特定TAG分支来查看代码,按照先git clone后git checkout的方式,提示说有文件没有提交.因为只查看不编译运行,所以这些关系不大的文件采取删除或者重新命名后提 ...

  7. reveal

    链接 界面调试工具Reveal Reveal使用教程 iOS分析UI利器——Reveal及简单破解方法 Reveal使用步骤和 破解Revealapp的试用时间限制 end

  8. java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决

    jetty 9 嵌入式开发时,启动正常,但是页面一浏览就报错如下: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest ...

  9. iOS下的按钮css去除原生样式

    IOS环境下的按钮都是经过美化的,但通常我们在设计web app的时候不需要这些看上去老土的样式,所以,去除这些显得很有必要. 下面这句代码就是重置这些样式的: input[type=button]{ ...

  10. jquery 停止动画 stop的几种用法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...