我在PHP中看到了很多可以用来在另一个类中调用类的方法,我想知道您对调用类的最短版本的看法。
假设我们有一个类名视图和另一个类名控制器
class View
{
private $data = array();
private $render = FALSE;
public function __construct($template , $datas = null)
{
try {
$file = strtolower($template) . '.php';
if (file_exists($file)) {
if($datas > 0) {
foreach($datas as $data) {
array_push($this->data, $data);
}
}
$this->render = $file;
} else {
die('Template ' . $template . ' not found!');
}
}
catch (customException $e) {
echo $e->errorMessage();
}
}
public function __destruct()
{
extract($this->data);
include($this->render);
}
}
和
require_once "system/autoload.php";
class Controller {
function index() {
$view = new View('something');
}
我知道我可以用
$view = new View('something');
或者使用OOP和扩展,从控制器内部的视图调用函数
$this->viewFunction();
但是我有没有办法像这样在controller内部调用view类
View('something)
我想使它最短的版本可能,如果它是不可能的,或者我必须在编译器内作出改变,好,只是给我最短的版本
谢谢大家
您肯定可以在PHP中实现这一点。 看看神奇的方法,特别是__invoke()
class View
{
public function __invoke(string $template)
{
return $template;
}
}
您可以简单地通过执行view('mytemplate');
来调用它