第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么是return $this->name; 而不是return $this->$name;

為什么是return $this->name; 而不是return $this->$name;

正在回答

2 回答

PHP面向?qū)ο笾?this的理解

轉(zhuǎn)載▼

? ?分類:?PHP ? ?

在定義一個類時,因為沒有對類實例化(對象),因而也無法得知對象的具體名稱是什么。這時,如果想調(diào)用類中的成員方法或成員變量,就只能通過偽變量$this調(diào)用,$this顧名思義就是指類本身,需要注意的一點是$this?只能在類內(nèi)部使用。否則將出錯。

有一點值得注意的是,在類內(nèi)部調(diào)用變量時,有遇到過兩種寫法:$this->name以及$this->$name;這兩者有什么區(qū)別?

以下屬個人理解,如有錯誤,請指教。

參考下面的例子:

<?php

class?Test{

public?$name?=?"abc";

public?$abc?=?"test";

public?function?eTest(){

$name1?=?"name";

echo?$this->name.'<br>';???//?輸出?abc

echo?$this->$name1.'<br>';??//?輸出?abc,因為?$name1?的值是name,相當與這里替換成?echo?$this->name;

$name2?=?$this->$name1;??//?$name2?的值是?abc

echo?$this->$name2.'<br>';??//?輸出?test,同上,相當與是?echo?$this->abc;

}

}

$a?=?new?Test();

$a?->eTest();

?>

下面我們分步驟來理解:

1、可以先將$this->name和$this->$name看成"$this->變量名",變量名可以是name也可以是$name,這看起來有些沖突,我們將$name換個變量,如$test,即name和$test作為變量名。

2、理解一個變量中存在有兩個因素,即變量名和變量值。這樣就可以簡單的理解上面的變量名了。name本身就是一個變量的變量名,$test則可以理解為以一個變量值為變量名的變量。


3 回復(fù) 有任何疑惑可以回復(fù)我~
#1

C小明

這樣的解釋只會更麻煩
2016-07-26 回復(fù) 有任何疑惑可以回復(fù)我~

首先 你要知道 這是在使用類。

其次,要明白在類中 $this->的含義,$this->name 是該類的一個屬性,$name 是一個變量,$this->$name.不正確,沒有這個命名規(guī)范。

最后,你不妨將這些都打印一遍加深理解

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Dull 提問者

它聲明的變量名不是$name嗎?為什么取這個值的時候就去掉$了,。。這些都輸出過,$this->name; 報錯了,
2015-08-27 回復(fù) 有任何疑惑可以回復(fù)我~
#2

asher111 回復(fù) Dull 提問者

name 是這個實例的一個屬性
2015-12-20 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么是return $this->name; 而不是return $this->$name;

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號