TP5 学习总结--控制器的,请求,ECHO和return的区别,TP5伪静态
控制器,就是一个PHP文件,每个php文件中,有NUCF四大部分。
N 表示namespace
U 表示 use
C 表示class
F 表示function方法
TP5的控制器文件,有四部分组成,NUCF,再次记忆一下。
获取请求的参数有三种方法
$_POST
$_GET
tp5,推荐使用request类中的param方法,这样的好处是,TP对请求做了一些验证,更安全更高效
$this->request->param()
echo和return的区别
项目中碰到的问题,本来是想在控制器直接return $xml的($xml是一段xml格式的代码),但是测试却发现什么都没有输出。换成echo $xml;就成功了,所以特地百度了一下:
1、从关键词意思上看:
echo 是输出字符串到浏览器
return主要是用于函数,返回一个值
2、echo 主要用于:php对浏览器的输出;
return主要用于处理函数的返回值
3、在大多数情况下,echo 和return的结果都是一样的。但如果出现函数嵌套或者函数比较多的情况,
echo会无效或者发生错误。所以处理函数的返回或者输出还是用return好。
4、比如我项目中碰到的这个问题,因为要在浏览器输出内容,所以用echo比较合适。如果是需要一个可以被其它函数调用的返回值的话,建议还是用return.
php键值对就是数组吗
键值对,是关联数组
TP5 伪静态
可以看到,伪静态,是定义了不同情景模式的处理方法。
1.其中有cond和rule,是一起出现的。cond情景,rule处理方法,规则。
2.$表示参数
3.!表示非
4. d 表示目录
5.f 表示文件
伪静态apache伪静态规则
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
nginx伪静态规则
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}