検索
ホームページphp教程php手册细说php(七) 面向对象编程

细说php(七) 面向对象编程

一、类的声明与对象初始化

1.1 在类中声明成员属性时: 前面必须有修饰词, 当不知道使用那个时, 就使用var, 如果知道使用那一个修饰关键字, 就不使用var了

var $color;

var $name = "zhangsan"


1.2 一个文件只保存一个类, 文件名中包含类名, 如:类名.class.php

person.class.php


1.3 使用new关键字来创建对象, 创建了一个对象就在内存中分配一个空间 $对象引用 = new 类名;

$person = new Person

<?php
	class Person {
		var $name;      // Java: private String name;
		var $age;
		var $sex;
	
		function say() {
			echo $this->name;
		}
	}
	
	$p1 = new Person;   // Java: Person person = new Person;
	$p1->name = "lisi"; // Java: person.name = "lisi";
	$p1->say();         // Java: person.say();
?>
1.4 对象在内存中的分配

a. 栈内存: 存放局部变量

b. 堆内存: 存放对象

c. 共享区: 存放静态变量

d. 代码段: 存放方法等


二、构造函数和析构函数

2.1 构造函数:

a. 构造方法是对象创建完成之后, 第一个自动调用的方法

b. 在PHP4中, 和类同名的方法就是构造方法

c. 在PHP5中, 构造方法选择使用魔术方法 __construct() , 所有类中声明构造方法都使用这个名称

优点: 在改变类名时构造方法不用改变

d. 构造方法的作用: 为成员属性初始化

<?php
	class Person {
		var $name;
		var $age;
		var $sex;
	
		function __construct($name="", $age=0, $sex="男"){
			$this->name=$name;
			$this->age=$age;
			$this->sex=$sex;
		}
	
		function say(){
			echo "我的名子:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>";
		}
	}
	
	$p1=new Person("zhangsan", 20, "女");
	$p2=new Person("lisi", 25);
	$p3=new Person("wangwu");
	
	$p1->say();
	$p2->say();
	$p3->say();
?>

2.2 析构函数:

a. 析构函数是指当对象被释放之前最后一个自动调用的方法

b. 和Java一样, PHP也使用垃圾回收器释放资源, 只不过PHP调用后马上回收, 而Java不是.

c. 析构函数的作用: 关闭一些资源, 做一些清理工作, 使用魔术方法 __destruct()

<?php
	class Person {
		var $name;
		var $age;
		var $sex;
	
		function __construct($name="", $age=0, $sex="男"){
			$this->name=$name;
			$this->age=$age;
			$this->sex=$sex;
		}
	
		function say(){
			echo "我的名子:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>";
		}
		
		function __destruct(){
			echo $this->name."再见!<br>";
		}
	}
	
	$p1=new Person("zhangsan", 20, "女");
	$p1->say();
	$p1 = null;
	
	// 我的名子:zhangsan,我的年龄:20,我的性别:女。
    // zhangsan再见!
?>


2.3 魔术方法

魔术方法是系统给我们提供好的, 在不同时刻为完成某一功能而自动调用的方法, 不同的魔术方法有不同的调用时机

魔术方法以 __ 开头

__construct(); // 构造函数
__destruct(); // 析构函数
__set();
__get();
__isset();
__unset();
__clone();
__call();
__sleep();
__weakup();
__toString()
__autoload();

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。