有人可以帮助理解 php 中的这个语法技巧:
enter $controller->{$_GET['action']}();
我说的是
{$_GET['action']}();
我试图理解这个博客http://r.je/mvc-in-php.html上的 mvc 模式,但如果我能理解这个语法技巧,它真的对我有帮助......
谢谢
有人可以帮助理解 php 中的这个语法技巧:
enter $controller->{$_GET['action']}();
我说的是
{$_GET['action']}();
我试图理解这个博客http://r.je/mvc-in-php.html上的 mvc 模式,但如果我能理解这个语法技巧,它真的对我有帮助......
谢谢
啊。那是丑陋的代码。就像非常丑陋的代码一样。
所以你有一个对象$controller
,他们$_GET['action']
用来调用里面的一个方法$controller
。所以说你有page.php?action=call
。这将与调用相同
$controller->call();
这是一个非常糟糕的主意,寿。你不应该接受原始的不受信任的数据来执行代码。那里有巨大的安全漏洞。
它接受通过action
查询参数传入的任何字符串,并尝试将其作为函数执行。例如
http://example.com/index.php?action=whatever
最终将等同于拥有
$controller->whatever();
在代码中。
非常感谢你的帮助。所以当我这样做时:
$controller->{$_GET ['action']} ();
我正在动态访问对象的成员。在这种情况下,它是控制器。在本教程中,已调用的方法是“textclicked”。所以这就是上面的行代码所做的。非常感谢你的帮助。这对我有很大帮助