2016-04-21 58 views
-1

我們對我們的服務器和html/css/php文件使用MAMP。我已經加倍檢查了一切,並確保這確實沒有錯誤。它以本地主機錯誤結束。這意味着它不會顯示我的工作。這是我的工作:我在學校學習PHP,每個人都有這個不工作

- main.php -

<?php 

require 'person.php' 

$person = new Person; 
$person->name = 'Froggy'; 
$person->age = '15'; 

echo $person->sentence(); 

?> 

--- person.php ---

<?php 
class Person { 
    public $name; 
    public $age; 


    public function sentence() { 
    return $this->name . 'is' . '$this->age' . ' years old'; 
    } 
} 
?> 

因此,這個簡單的代碼會告訴我「 '青蛙'是'15歲'但它不會工作。幫幫我?

+0

上述代碼中主要存在一些錯誤require行之後缺少的分號。你一定要嘗試訪問服務器的PHP錯誤日誌,否則你會碰到更多這樣的問題。 – iainn

+0

你能提供一個「它不會工作」的解釋嗎? –

+0

首先,檢查'http:// localhost /'或'http:// localhost:8080 /'是否正常工作,它應該顯示MAMP的默認網站。如果它不顯示默認站點,請確保Apache **已啓動/正在運行。 – dbf

回答

4

解析錯誤:

添加分號這裏

require 'person.php'; 

再次,改變功能:

public function sentence() { 
return $this->name . ' is ' . $this->age . ' years old'; 
} 

問題是,$this->age是有它周圍的單引號。

單引號內的變量不被解析,它被稱爲變量插值。

但是,雙引號內的變量可以被解析。

輸出:

Froggy is 15 years old 
+0

我仍然收到本地主機錯誤 –

+0

在此處顯示錯誤。 – Pupil

+0

localhost上的頁面不起作用 localhost當前無法處理該請求。 –

1

刪除引號$this->age

<?php 
class Person { 
    public $name; 
    public $age; 


    public function sentence() { 
    return $this->name . 'is' . $this->age . ' years old'; 
    } 
} 
0

如果你想在你輸出的報價,你可以在你的函數返回此:

return "'$this->name' is '$this->age' years old";