细说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(); ?>
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再见! ?>
魔术方法是系统给我们提供好的, 在不同时刻为完成某一功能而自动调用的方法, 不同的魔术方法有不同的调用时机
魔术方法以 __ 开头
__construct(); // 构造函数
__destruct(); // 析构函数
__set();
__get();
__isset();
__unset();
__clone();
__call();
__sleep();
__weakup();
__toString()
__autoload();

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JSON(JavaScriptObjectNotation)是一種輕量級的資料交換格式,已成為Web應用程式之間資料交換的常用格式。 PHP的json_encode()函數可以將陣列或物件轉換為JSON字串。本文將介紹如何使用PHP的json_encode()函數,包括語法、參數、傳回值以及具體的範例。語法json_encode()函數的語法如下:st

使用Python的__contains__()函數定義物件的包含操作Python是一種簡潔而強大的程式語言,提供了許多強大的功能來處理各種類型的資料。其中之一是透過定義__contains__()函數來實現物件的包含操作。本文將介紹如何使用__contains__()函數來定義物件的包含操作,並且給予一些範例程式碼。 __contains__()函數是Pytho

將MySQL查詢結果陣列轉換為物件的方法如下:建立一個空物件陣列。循環結果數組並為每一行建立一個新的物件。使用foreach迴圈將每一行的鍵值對賦給新物件的對應屬性。將新物件加入到物件數組中。關閉資料庫連線。

楔子我們知道物件被創建,主要有兩種方式,一種是透過Python/CAPI,另一種是透過呼叫類型物件。對於內建類型的實例物件而言,這兩種方式都是支援的,例如列表,我們即可以透過[]創建,也可以透過list(),前者是Python/CAPI,後者是呼叫類型物件。但對於自訂類別的實例物件而言,我們只能透過呼叫類型物件的方式來創建。而一個物件如果可以被調用,那麼這個物件就是callable,否則就不是callable。而決定一個物件是不是callable,就取決於其對應的型別物件中是否定義了某個方法。如

PHP函數可以透過使用return語句後接物件實例來傳回對象,從而將資料封裝到自訂結構中。語法:functionget_object():object{}。這允許創建具有自訂屬性和方法的對象,並以對象的形式處理資料。

標題:使用Python的__le__()函數定義兩個物件的小於等於比較在Python中,我們可以透過使用特殊方法來定義物件之間的比較操作。其中之一就是__le__()函數,它用來定義小於等於比較。 __le__()函數是Python中的一個魔法方法,並且是一種用於實現「小於等於」操作的特殊函數。當我們使用小於等於運算子(<=)比較兩個物件時,Python

在C++中,函數傳回物件需要注意三點:物件的生命週期由呼叫者負責管理,以防止記憶體洩漏。避免懸垂指針,透過動態分配記憶體或返回物件本身來確保物件在函數返回後仍然有效。編譯器可能會最佳化傳回物件的副本生成,以提高效能,但如果物件是值語義傳遞的,則無需副本生成。

PHP中,數組是有序序列,以索引存取元素;物件是具有屬性和方法的實體,透過new關鍵字建立。數組存取透過索引,物件存取通過屬性/方法。數組值傳遞,物件參考傳遞。
