如何将PHP类定义放在包含文件中

Rob*_*b3C 3 php

我是PHP的新手,当我将一个类定义从我的"主"页面移到一个包含文件时遇到了麻烦.

假设我有main.php,内容如下.它工作正常:

<?php
class SimpleClass
{
    public $var = 'a def value';

    public function displayVar() {
        echo $this->var;
    }
}
?>
<html>
<h1>blah blah blah</h1>
</html>
Run Code Online (Sandbox Code Playgroud)

但现在假设我尝试删除类定义并将其放在一个单独的文件中,以便main.htm现在看起来像:

<?php
include("classdef.php");
?>
<html>
<h1>blah blah blah</h1>
</html>
Run Code Online (Sandbox Code Playgroud)

和classdef.php是:

<?php
class SimpleClass
{
    public $var = 'a def value';

    public function displayVar() {
    echo $this->var;
}
?>
Run Code Online (Sandbox Code Playgroud)

然后,当我查看我的main.php时,它显示为

var; } } ?>
blah blah blah
Run Code Online (Sandbox Code Playgroud)

好像其中的>字符$this->var被解释为关闭PHP.我在搜索这个问题时遇到了麻烦,因为我不知道->运算符是什么.

这是关于Windows上Apache 2.2的PHP 5.3.3.

Vin*_*ard 6

你的PHP没有被解释(如果它是一个解析错误问题,那么你会得到一个解析错误).我注意到的第一件事是你说你把PHP放在main中..除非您明确地将服务器设置为使用PHP解释.htm/.html文件,否则您的服务器将不知道您在此文件中有PHP.

编辑:正如我在评论中所说,问题是Apache没有被PHP解释.以下是常见问题:

  • 您没有正确调用脚本,例如您正在调用C:\ wamp\www\yourfile.php而不是http://localhost/yourfile.php
  • 正如Wrikken所说,你使用的是短标签(<?而不是<?php)
  • 您对文件名进行了错误的扩展

我不认为这是一个引用问题,否则你很可能会得到一个解析错误.我会跟其他人说的一样,并要求你提供PHP脚本生成的HTML代码(通过浏览器访问脚本并按Ctrl + U)