不能在任何其他文件中使用PHP

时间:2012-05-25 02:51:02

标签: php

所以我有两个php类,一个是类,一个使用另一个,我的类是:

(menu.php)

 <?php
public class Menu
{
        $home = '<li><a href="index.html"><span>Home</span></a></li>';
        $home_selected = '<li class="navhome"><a href="index.html"><span>Home</span></li>';

        $projects = '<li><a href=""><span>Projects</span></a></li>';
        $projects_selected = '<li class="navhome"><a href=""><span>Projects</span></a></li>';

        $contact = '<li><a href=""><span>Contact Us</span></a></li>';
        $contact_selected = '<li class="navhome"><a href=""><span>Contact Us</span></a></li>';

        public function getMyMenu($value)
        {
                switch($value) {
                        case "home":
                                return (string) $home_selected . $projects . $contact;
                                break;
                        case "projects":
                                return $home . $projects_selected . $contact;
                                break;
                        case "contact":
                                return $home . $projects . $contact_selected;
                                break;
                }
        }

}
?>

然而,在index.php中,哪里有

<?php include("menu.php"); 
      $menu = new Menu();
      echo($menu->getMyMenu("home")); ?>

或者放置任何变体,之后网页就不会加载,例如,如果它放在页面中间,页面的末尾甚至不会被发送到浏览器。 / p>

我对php很新,我希望这是一个&#34; duh&#34;回答,如果您需要更多请咨询;感谢

3 个答案:

答案 0 :(得分:3)

您的字符串未被引用。您需要对不包含变量的字符串使用'string',如果您想在字符串中添加变量值,则需要"string $var"

另外,非常有帮助的是写在你的脚本的开头:

error_reporting(E_ALL);

这可以实现完整的错误跟踪,因此PHP会告诉您他看到哪些字符串的哪些问题 - 非常有帮助!

另外,看看你的字符串:

return "hello world";

如果函数将在此字符串上停止,那么该指令如何工作?如果您希望此返回为默认值,则应将其置于切换后。

答案 1 :(得分:2)

你应引用('")字符串

$home = '<li><a href="index.html"><span>Home</span></a></li>';

完整代码:

class Menu
{
    private $home = '<li><a href="index.html"><span>Home</span></a></li>';
    private $home_selected = '<li class="navhome"><a href="index.html"><span>Home</span></li>';

    private $projects = '<li><a href=""><span>Projects</span></a></li>';
    private $projects_selected = '<li class="navhome"><a href=""><span>Projects</span></a></li>';

    private $contact = '<li><a href=""><span>Contact Us</span></a></li>';
    private $contact_selected = '<li class="navhome"><a href=""><span>Contact Us</span></a></li>';

    public function getMyMenu($value)
    {
        switch($value) {
            case "home":
                return $this->home_selected . $this->projects . $this->contact;
                break;
            case "projects":
                return $this->home . $this->projects_selected . $this->contact;
                break;
            case "contact":
                return $this->home . $this->projects . $this->contact_selected;
                break;
        }
    }
}

答案 2 :(得分:0)

您需要指定类属性的可见性,例如:

class Menu {
    public $home = ...;
}

另请注意,关键字public之前不应该有class。此外,您缺少所有字符串属性值的引号。基本上一切都是错的,你很可能show_errors被禁用了。