小案例-快速入门
//打印张三对应的年龄和性别
-
最初的解决方法:
定义三个变量,一一打印输出
-
数组的解决方式:
更进一步,只定义一个变量,减少内存
$arr= array(‘name’=>’张三’, ‘age’=>23, ‘sex’=>’男’);
-
用面向对象方式解决:
分析:
-
class 是一个关键词,表示这个是一个类,固定形式
-
ZhangSan 这是一个定义的类名,自定义的,要符合类的规范
-
public $name 是一个成员属性,定义在类中的变量就称为成员属性
-
public 是访问修饰符,是用来控制成员属性的访问范围,除了public还有protected和private
-
$zhangsan = new ZhangSan(); 这是实例化对象,$zhangsan 就是一个对象,new是个关键词,表示新创建的一个对象
-
$zhangsan->name=’张三’ 表示给一个成员属性赋值,->这是对象运算符
-
查看对象情况可以用var_dump()函数,获取具体的对象中的某个值,echo $zhangsan->name;
类与对象的关系
-
介绍
在面向对象中,最重要的概念就是类和对象,比如,一个人类,每一个人都具有一定的属性和行为方法,这这些属性和方法具体到每一个人身上就是一个对象,一个大类就是有无数个对象组成
定义一个人类:
说明:
-
一个类可以创建多个对象
-
不同的对象的后面的编号不一样,是系统自动分配的
-
类的命名规范:驼峰命名比如$ZhangSan
理解类如对象
-
类是抽象的,代表的是一类事物,比如人类、猫类、动物类
-
对象是具体的,实际存在的,是一个具体的事物,比如具体的一个人,一只猫、一只狗
-
类可以看作是一个模板,对象则是类的一个具体的实例
类的定义
class 类名{
访问修饰符 成员属性1;
访问修饰符 成员属性2;
…….
}
成员属性
定义:类的变量成员叫做属性,或者叫做字段、特征,在本文挡中称为属性, 属性声明是由关键词public、protected、private开头。然后跟一个普通的变量声明组成,属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指php脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值
简言之:就是类的一种属性,属性的值符合全部的数据类型(8种数据类型)
- 对象创建
对象创建有两种方式,一个是类名后面加括号,另一个就是不加
-
$对象名 = new 类名();
-
$对象名 = new 类名;
-
对象访问
$对象名->属性名;
->对象运算符
说明:
-
在使用默认构造方法时,创建对象的
new 类名()和new类名是等价的
对象传递方式
第一种传递方式:$p2 = $p1;
说明:
- 所有的代码必须加载到内存才能被执行
- 当把一个对象赋给另一个变量时,也是值的拷贝。。指向的是同一个标识符
第二种传递方式:$p2 = &$p1;
1234