誰能給我解釋下php中$this的詳細含義和功能?
恕我直言,題主你這根本就不是單純的PHP的問題,你這是編程基礎不行的問題,這就是最簡單的類和對象的概念和關係,在任何面向對象類型的編程語言里都會有,建議先好好補補編程基礎,增強一下對編程的理解,再來上手碼代碼。
補:
看你給樓上答主的回復,在反覆強調「都是php的」、「剛學php不熟悉」,講真就是沒有認清自己的實際問題是對編程基礎的理解都不夠。還有這句「麻煩講下繼承的參數傳遞和方法屬性引用實例」,更能證明了你對編程基礎的理解就很差,你在這樣對編程基礎不求甚解的情況直接擼代碼然後拿著代碼實例來問編程通用的基礎,實在不是一個學習編程的好方式。不管你再怎麼強調php,這都是你的基礎問題,而不是php的問題,php表示不背這個鍋。。。
編程語言萬變不離其宗,入門編程思想才是你目前最需要的,基礎不行,非php之罪。
你所問的這些問題在任何面向對象的編程語言里都存在,比如java里的this關鍵字,java的構造函數,你new一個類傳入的參數當然是傳給了構造函數,只不過java的構造函數名必須與類名相同,php的構造函數名默認是__construct,基礎沒打好,你學java也會有這樣的疑問的,這邊建議你認清一下自己先(手動狗頭)。
首先,$this是一個用來表示類內部的屬性和方法的代號,相當於類本身。作用範圍在類的內部。
比如 $user = new User();
$this 就相當於$user;
至於裡面的參數,那是類初始化的時候,給它的一個屬性的賦初始值。
繼承一個類的話,子類會默認覆蓋父類的__construct方法
這個__construct方法是類在初始化的時候,自動調用的一個方法。參數就是傳給它的
建議認真把官方文檔的語言參考過一遍,再上手學習。
https://www.php.net/manual/zh/langref.php?www.php.net你的疑問,在這裡有說明
PHP: 基本概念 - Manual?www.php.net不用再過於深究$this 這個東西,只需要記住這個玩意兒指代當前類的實例,
從IDE上來就是 在類的內部調用類本身的方法和屬性。
php 本身的 類這塊有一定的「特點」,如果太過於深究,你會發現這玩意兒和java c# 之類的 this 的區別特大
我強烈建議你這一個var_dump看一下輸出
$this 的意思就是我,相當於類的第一人稱。張三稱呼類要叫類名,類稱呼自己就要叫我,也就是$this。
實例化後的具體對象
表示在本類內部使用本類屬性和方法
php中我們一般是先聲明一個類,然後用這個類去實例化對象!$this 的含義是表示實例化後的具體對象!$this-&>表示在類本身內部使用本類的屬性或者方法。『-&>』符號是「插入式解引用操作符」(infix dereference operator)。換句話說,它是調用由引用傳遞參數的子程序的方法(當然,還有其它的作用)。正如我們上面所提到的,在調用PHP的函數的時候,大部分參數都是通過引用傳遞的。
不會搜索?
推薦閱讀: