所以我有两个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;回答,如果您需要更多请咨询;感谢
答案 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
被禁用了。