我在学校学习PHP,每个人都有这个不工作

问题描述:

我们对我们的服务器和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

解析错误:

添加分号这里

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当前无法处理该请求。 –

删除引号$this->age

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


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

如果你想在你输出的报价,你可以在你的函数返回此:

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