当前位置: 代码迷 >> PHP >> PHP常见知识点梳理小结
  详细解决方案

PHP常见知识点梳理小结

热度:47   发布时间:2016-04-28 19:41:33.0
PHP常见知识点梳理总结

PHP方面:
1,echo print print_r的区别
Echo是PHP语句,print与print_r是函数语句没有返回值,函数可以有返回值
Print只能打印简单类型变量的值。
Print_r可以打印复杂变量值(数组或对象)
Echo 输出一个或者多个字符串。

2,mysql_fetch_array() 与mysql_fetch_row()区别
mysql_fetch_array()返回根据从结果集取得的行生成的数组,如果没有更多行,返回false,除了将数据以字段做索引外,还可以用字段名作为索引。
mysql_fetch_row() 返回从结果集中取得一行作为枚举数组,返回一个数字索引的数组,偏移量从0开始。
mysql_fetch_array() 是mysql_fetch_row()的扩展版本。

3,PHP面向对象中 _set() 与 _construct的作用
_set() ——- 用于为属性设置值, _get() 获取属性的值
_construct ——- 在一个类中只能声明一个构造方法,只有在每次创建对象的时候回去调用一次构造方法,不能主动的调用这个方法,所以通常用它执行一些有用的初始化任务。

4,PHP中session与cookie的区别
Cookie是保存在客户端的信息,是一种在远程浏览器储存数据并以此来跟踪和识别用户的机制。PHP的http协议的头信息里发送cookie,因此setcookie()函数必须在其他信息输出前调用,和header()函数的限制类似。
Session是保存在服务器端的信息,从这个角度,session比cookie更安全。当会话创建时,服务器返回客户端一个加密的session_id 以标识用户身份,浏览器关闭时,session会销毁,从而session存的值就没有了。

5,如何设置cookie并指定有效的时间
Bool setcookie(string name,string value,int expire,string path,string domain,bool secure,bool httponly)
Name : cookie变量名
Value : cookie 变量值
Expire: 有效期结束的时间
Path: 有效目录
Domain: 有效域名,顶级或唯一
Secure: 如果值为1,则cookie只能在https连接上有效,如果为默认值0,http和https都可以

Php设置cookie
$value = ‘something from somewhere’;

setcookie(“TestCookie”, $value); /* 简单cookie设置 */
setcookie(“TestCookie”, $value, time()+3600); /* 有效期1个小时 */
setcookie(“TestCookie”, $value, time()+3600, “/~rasmus/”, “.example.com”, 1); /* 有效目录 /~rasmus,有效域名example.com及其所有子域名 */
?>
使用header()设置cookie;
header(“Set-Cookie: name=$value[;path=$path[;domain=xxx.com[; ]]”);
后面的参数和上面列出setcookie函数的参数一样.

Cookie的机制原理:
a) 服务器通过随着响应发送一个http的Set-Cookie头,在客户机中设置一个cookie(多个cookie要多个头).
b) 客户端自动向服务器端发送一个http的cookie头,服务器接收读取.
HTTP/1.x 200 OK
X-Powered-By: PHP/5.2.1
Set-Cookie: TestCookie=something from somewhere; path=/
Expires: Thu, 19 Nov 2007 18:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html

这一行实现了cookie功能,收到这行后
Set-Cookie: TestCookie=something from somewhere; path=/
浏览器将在客户端的磁盘上创建一个cookie文件,并在里面写入:
TestCookie=something from somewhere;
/
这一行就是我们用setcookie(‘TestCookie’,’something from somewhere’,’/’);的结果.也就是用header(‘Set-Cookie: TestCookie=something from somewhere; path=/’);的结果.
6,PHP面向对象中的访问控制
Public 表示全局,类内部外部子类都可以访问
Private 表示私有,只有本类内部可以调用
Protected 表示受保护的,只有本类或子类或父类可以访问

7,什么是PHP的MVC,MVC的作用及原理
MVC是一个设计模式,它强制性的使应用程序的输入,处理,输出分开,使用MVC应用程序本分成了三个核心部分:模型,视图,控制器,它们各自处理自己的任务。

MVC的原理:首先控制器接受用户的请求,并决定应该调用用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,然后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
基本原理:表现层(V)的请求发送到控制器(C),控制器根据请求类型调用业务层(M),最终调用表现层显示。

8,PHP中include require 的区别
这两种结构在处理失败之外有不同,include产生一个警告,而require则导致一个致命的错误,换句话说,如果你想在遇到丢失文件时停止处理页面就用require。Include就不是这样,脚本会继续执行。
Require的使用方法如require(“Myfile.php”); 这个表式通常放到PHP程式的最前面,PHP执行前,就会读入require所指定引入的档案,使它变成PHP程式网页的一部分。
Include使用方法和上面相同,这个程式一般放到流程控制的处理区段,php程式网页在读到include的档案时,才将它读进来,这种方式,可以把程式执行时的流程简单化。

当页面执行到require()时,如果require是一个PHP、HTML页面的话,这时就会马上转到去执行该页面了。而include,一般是用于include进来一些inc文件。比如说可以将你的网站的页头和页眉作为一个inc文件,这样在每个PHP文件里面再include进来。include实际只是将你要include的文件嵌入到当前页面当中。而require则是马上去执行你所请求的页面。
——————————————————————————–
incluce在用到时加载
require在一开始就加载
_once后缀表示已加载的不加载
php系统在加载php程序时有一个伪编译过程,可使程序运行速度加快。但incluce的文档仍为解释执行
include的文件中出错了,主程序继续往下执行
require的文件出错了,主程序也停了
所以包含的文件出错对系统影响不大的话(如界面文件)就用include,否则用require
include_once()函数,require_once()函数会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容

10,计算两个时间差 2009.5.12 2009.5.20
$regist1 = “05/12/2006″;
$regist2 = “10/05/2007″;
list($month1,$day1,$year1)= explode(“/”,$regist1);
list($month2,$day2,$year2)= explode(“/”,$regist2);
$regist1 = mktime(0,0,0,$month1,$day1,$year1);
$regist2 = mktime(0,0,0,$month2,$day2,$year2);
$time_difference = $regist2-$regist1;

11,你了解的协议有哪些?HTTP协议的错误提示代表什么?
SMTP(Simple Mail Transfer Protocal)称为简单邮件传输协议,目标是向用户提供高效、可靠的邮件传输。
POP的全称是 Post Office Protocol ,即邮局协议,用于电子邮件的接收,它使用TCP的110端口,现在常用的是第三版,所以简称为 POP3
IMAP是Internet Message Access Protocol的缩写,顾名思义,主要提供的是通过Internet获取信息的一种协议。
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。
IE提示 HTTP 403 – 禁止访问
IE提示 HTTP 403.9 – 禁止访问:连接的用户过多
IE提示 HTTP 404 – 无法找到文件
IE提示 HTTP 500 – 内部服务器错误

  相关解决方案