那里有很少的路由器,但我决定为一个非常轻的站点创建一个非常简单的路由。
这是我的index.php
$route = new Route();
$route->add('/', 'Home');
$route->add('/about', 'About');
$route->add('/contact', 'Contact');
这是我的路由器:
<?php namespace Laws\Route;
use Laws\Controller\Home;
class Route
{
private $_uri = array();
private $_method = array();
private $_route;
public function __construct()
{
}
public function add($uri, $method = null)
{
$this->_uri[] = '/' . trim($uri, '/');
if ($method != null) {
$this->_method[] = $method;
}
}
public function submit()
{
$uriGetParam = isset($_GET['uri']) ? '/' . $_GET['uri'] : '/';
foreach ($this->_uri as $key => $value) {
if (preg_match("#^$value$#", $uriGetParam)) {
$useMethod = $this->_method[$key];
new $useMethod(); // this returns an error (cannot find Home'
new Home(); // this actually works.
}
}
}
}
new $ useMethod();不起作用。返回错误&#39;找不到Home&#39; 新家();实际上是有效的。
我在这里缺少什么?
答案 0 :(得分:0)
您可以使用并发方式来调用类,也可以使用它:
call_user_func(array($classname,$methodname))