php創建類,php創建函數

本文目錄一覽:

PHP類的構造方法

構造方法是類中的一個特殊方法。當使用 new 操作符創建一個類的實例時,構造方法將會自動調用,其名稱必須是 __construct() 。所以通常用它執行一些有用的初始化任務。該方法無返回值。

如果子類中定義了構造函數則不會暗中調用其父類的構造函數。要執行父類的構造函數,需要在子類的構造函數中調用 parent::__construct()。

與構造方法對應的就是析構方法,析構方法會在某個對象的所有引用都被刪除或者當對象被顯式銷毀之前執行的一些操作或者功能。析構函數不能帶有任何參數,其名稱必須是 __destruct() 。

同樣,如果子類中定義了析構函數則不會暗中調用其父類的析構函數。要執行父類的析構函數,需要在子類的析構函數中調用 parent::__destruct()。

注意:在析構函數中拋出一個異常會導致致命錯誤。

?php

class Construct{

protected $a;

protected $b;

function __construct($a,$b){ //定義構造函數

$this-a=$a;

$this-b=$b;

}

function __destruct(){ //重新定義為初始值

$result=0;

echo ‘恢復乘積的初始值:’.$result;

}

}

class son extends construct{

private $c;

function __construct($c){

parent::__construct(6,10); //調用父類的構造方法,使用方法:parent::__construct(); 有參數加參數

$this-c=$c;

}

function show(){

$result=$this-a*$this-b*$this-c;

print ‘abc的乘積是:’.$result.’ ‘;

}

function __destruct(){

parent::__destruct(); //調用父類的析構函數,使用方式:parent::__destruct();

}

}

$test=new son(12); //實例化對象

$test-show(); //abc的乘積是:720 恢復乘積的初始值:0

?

如何在PHP中定義一個類

當你聲明一個類,你需要列出對象應有的所有變量和所有函數?被稱為屬性和方法圖1中顯示了一個類的構成. 注意在大括號({})內你只能聲明變量或者函數. 圖2中顯示了如何在一個類中定義三個屬性和兩個方法.

以下為引用的內容:

class Name extends Another Class

{

Access Variable Declaration

Access Function Declaration

}

name = $name;

$this-password = $password;

$this-lastLogin = time();

$this-accesses++;

}

// 獲取最後訪問的時間

function getLastLogin()

{

return(date(“M d Y”, $this-lastLogin));

}

}

//創建一個對象的實例

$user = new User(“Leon”, “sdf123”);

//獲取最後訪問的時間

print($user-getLastLogin() .”\n”);

//打印用戶名

print(“$user-name\n”);

?

當你聲明屬性,你不需要指明數據類型. 變量可能是整型,字符串或者是另一個對象,這取決於實際情況.在聲明屬性時增加註釋是一個好主意,標記上屬性的含義和數據類型.

當你聲明一個方法,你所做的和在類外部定義一個函數是一樣的. 方法和屬性都有各自的命名空間. 這意味着你可以安全地建立一個與類外部函數同名的方法,兩者不會衝突. 例如,一個類中可以定義一個名為date()的方法. 但是你不能將一個方法命名為PHP的關鍵字,如for或者while.

類方法可能包含PHP中所謂的type hint. Type hint 是另一個傳遞參數給方法的類的名字. 如果你的腳本調用方法並傳遞一個不是類的實例的變量,PHP將產生一個”致命(fatal)錯誤” . 你可能沒有給其它類型給出type hint,就像整型,字符串,或者布爾值. 在書寫的時候, type hint是否應當包含數組類型仍存在爭議.

Type hint是測試函數參數或者運算符的實例的數據類型的捷徑. 你可能總是返回這個方法. 確認你強制讓一個參數必須是哪種數據類型,如整型. 圖3 確保編譯類只產生Widget的實例

以下為引用的內容:

<?php

//組件

class Widget

{

public $name=’none’;

public $created=FALSE;

}

//裝配器

class Assembler

{

public function make(Widget $w)

{

print(“Making $w-name\n”);

$w-created=TRUE;

}

}

//建立一個組件對象

$thing = new Widget;

$thing-name = ‘Gadget’;

//裝配組件

Assembler::make($thing);

?>

除了傳遞參數的變量外,方法含有一個特殊的變量. 它代表類的個別實例. 你應當用這個來指向對象的屬性和其它方法.一些面向對象的語言假設一個不合格的變量提交給本地屬性,但在PHP中方法的任何變量只是在方法的一定範圍內. 注意在User類的構造函數中這個變量的使用圖2.

php創建一個類,在類中聲明一個數組存放另一個對象,為什麼無法調用數組中對象的方法?

//新建一個類User用來存放這,三個數據

//結果放到一個User數組中,你看這可以嗎?

//還是說要放到一個list中?

public class ObjectTest {

public static void main(String[] args) {

String[] id = new String[8];

String[] type = new String[8];

String[] username = new String[8];

User[] users = getUsers(type, id, username);

}

private static User[] getUsers(String[] type, String[] id, String[] username) {

User[] users = new User[type.length];

for (int i = 0; i type.length; i++) {

users[i] = new User(id[i], type[i], username[i]);

}

return users;

}

}

class User {

public User(String id, String tpye, String username) {

this.tpye = tpye;

this.id = id;

this.username = username;

}

private String tpye;

private String id;

private String username;

public String getTpye() {

return this.tpye;

}

public String getId() {

return this.id;

}

public String getUsername() {

return this.username;

}

public void setTpye(String tpye) {

this.tpye = tpye;

}

public void setId(String id) {

this.id = id;

}

public void setUsername(String username) {

this.username = username;

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/309654.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-04 19:31
下一篇 2025-01-04 19:31

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python函數名稱相同參數不同:多態

    Python是一門面向對象的編程語言,它強烈支持多態性 一、什麼是多態多態是面向對象三大特性中的一種,它指的是:相同的函數名稱可以有不同的實現方式。也就是說,不同的對象調用同名方法…

    編程 2025-04-29

發表回復

登錄後才能評論