2015-04-18 13 views
0

我檢查由別人寫了一些PHP代碼,基本上已經命名的變量$text

protected $text = null; 

然後在相同的文件後,他們指的是它沒有$標誌:

$this->text[$name] = new Text($age, $house); 
  1. 我有點好奇。這甚至有可能嗎?可以將一個名稱爲 的變量與$連接在一起的某個字中,只能使用 部分的標識而不是$
  2. 如果是的話,是否意味着某種特殊的東西,或者它是一個簡單的參考 的變量?

PS:我不認爲代碼是錯誤的,因爲它的工作原理= S

+1

'$ text'不是一個變量,它是一個類屬性。屬性使用'$ var-> propertyname'來訪問。 – Barmar

+1

http://php.net/manual/en/language.oop5.basic.php – AbraCadaver

+0

@Barmar謝謝,但這是否意味着我們總是必須在沒有'$'的情況下訪問它們,或者它可以是'$ var - > propertyname'或'$ var - > $ propertyname'? – Solace

回答

1

這個代碼是沒有故障,那是因爲它是在面向對象的PHP writen。 當你在一個php對象中聲明一個屬性時,在那種情況下$text,你可以稍後在同一個類中引用該屬性作爲$this->text

1

這就是在面向對象代碼中訪問變量(通常稱爲屬性)的方式。

class MyClass { 
    public $name = 'Billy Bob'; 
    public function printName() { 
     echo $this->name; 
    } 
} 

在這個例子中$this->name$name變量,屬於「這」類的實例(一類的一個實例被稱爲對象)。

class MyClass { /* ... */ } // This is a class definition 
$obj = new MyClass();  // This is an instance of the class, an object 
相關問題