PHP对象祥解(全)传智播客听客笔记(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
◆ PHP面积对象编程
◆构造方法
需求:
在创建一个人对象的进修,就初始化一些变量比如:name age
class Person{
public $name;
public $age;
//这个就是构造方法
public function __construct()
{
echo "我是构造方法";
}
}
$p1=new Person();
?>
1. 没有返回值
2. 主要作用是完成对新对象的初始化,并不是创建对象
3. 在创建一个类的新对象时,构造方法是被自动调用的
4. 在php5中一个类可以同时有两种形式的构造方法
__construct() 和类名(),当两个都存在的优先调用前面一个方法
5. 一个类中只能有一个构造方法
6. 一旦自定义了一个构造函数,默认的构造函数就被覆盖了,这时在创建对象的时候就要使用自定义的构造函数
7. 构造方法的默认访问修饰符是public
◆ This的理解
系统会给第个对象分配this代表当前对象
class Person{
public $name;
public $age;
//这个就是构造方法
?> } public function __construct($iname,$iage) { $this->name=$iname; $this-
>age=$iage; echo "我是构造方法"; } public function showInfo() { echo "名字
是:".$this->name; } $p1=new Person("张清",90); $p2=new Person("宋江",33); //echo $p1->name; $p1->showInfo(); $p2->showInfo();
☞ 1.this本质可以理解就是这个对象的地址
2.哪个对象使用到this,就是哪个对象地址
3.$this不能在类外部使用
析构方法的作用
析构方法的作用,主要用于释放资源(比如释放数据库连接,图片资源。。。销毁某个对象
快速入门
class Person{
public $name;
public $age;
//构造方法
public function __construct($iname,$iage){
$this->name=$iname;
$this->age=$iage;
}
//一个析构方法
function __destruct(){
echo $this->name."销毁资源"."
";
}
}
$p1=new Person("贾宝玉",16);
$p2=new Person("林要风",14);
运行代码我们得出
1. 析构方法会自动调用
2. 析构方法主要用于销毁资源,
3. 析构方法调用的顺序,先创建的对象最后被销毁
4. 析构方法什么时候被调用
①当程序退出时
②当一个对象成为一个垃圾对象的时候,该对象的析构方法也会被调用③所谓垃圾对象,就是指没有任何变量在引用它了、
④一旦一个对象成为垃圾对象,析构函数就会立即被调用
Php编程静态变量和方法
提出一个问题?
思路:
1. 使用全局变量
什么是全局变量,在程序中任何位置都可以使用的变量称为全局变量用global修饰
global $global_nums;
$global_nums=0;
class Child{
public $name;
function __construct($name){
$this->name=$name;
}
public function join_game()
{
global $global_nums;
$global_nums+=1;
echo $this->name."加入堆雪人游戏";
}
}
$child1=new Child("李逵");
$child1->join_game();
$child2=new Child("张飞");
$child2->join_game();
$child3=new Child("唐门");
$child3->join_game();
echo "$global_nums";
2. 使用静态变量
静态变量的基本用法
①类中定义静态变量
[访问修饰符] static 变量名;
②如何访问静态变量
如果在类中访问有两种方法 selft::$静态变量名
如果在类外访问有一种方法类名::$静态变量类名::$静态变量名class Child{
public $name;
//这里定义并初始化一个静态变量$nums
public static $nums=0;
function __construct($name){
$this->name=$name;
}
public function join_game()
{
//使用静态变量
self::$nums+=1;
echo $this->name."加入堆雪人游戏";
}
}
$child1=new Child("李逵");
$child1->join_game();
$child2=new Child("张飞");
$child2->join_game();
$child3=new Child("唐门");
$child3->join_game();
echo Child::$nums;
静态方法
静态方法不能访问非静态属性
需求:当我们需要操作静态变量的时候,我们可以考虑使用静态方法在我们编程中,我们往往使用静态方法去操作静态变量
静态方法的特点:
1. 静态方法去操作静态变量