是的呢
因为怕你看着看着睡着了
Smarty::$key 没有定义,没怎么用过Smarty,你上网查下。
这里的name是你在index里面传过来的参数。在index里面,你调用函数,传递两个参数,一个controller,一个method。里面的controller在你调用函数的时候对应的参数就是name。
要刷新一次才能显示大写
evel 是告诉WEB服务以下字符强制当做执行代码。大部分情况下可以省略。
同问,同问
命名规范。以后你选择的控制器都需要在文件名后面加上Controller.class.php.所以每个不同的控制器区别只在‘test'这个文件命名上。
eval 是把字符串当命令来执行。如果字符串是靠外界参数拼接的时候,如果过滤不好,就容易混入恶意代码被执行
自我回答:错误原因是:如果这样写
$obj->$method.'()'
那么解析顺序是这样的
解析$ob->$method -------此时的$method是全字符串的,会报出一个未定义属性的notice,
解析器第二步会做一个完全没有意义的事情,将上一步解析的最后结果连接上这样一个字符串 '()'
然后就没有然后了。
正确做法:$obj->$method();
-------------------------------------
总结:我只想说,是我2b了,视频中的红字部分看差了,自己还搞了两个小时去查原因。不过起码知道了一个会出现未定义属性的notice原因,也算是涨姿势了
因为不太习惯 把类名 直接用 变量来表达
MVC是一个架构理论。项目不论大小,用的很多