9月14日知识点记录


一.会话控制

1、每个页面都必须开启[session]_start()后才能在每个页面里面使用[session]。

2、[session]_start()初始化session,[第一次]访问会生成一个唯一会话[ID]保存在客户端(是基于cookie保存的),用户下次访问时,session_start()会检查有没有会话[ID],如果有浏览器会带着这个会话[ID]过来(通过发送头文件传过来的,这个可以用ff浏览器看到)来确定客户端。

3、给于cookie的session会在客户端保存一个会话ID即session_id,这个可以通过打印cookie看到,这个session_id的键值为session_name,session_id() == $_COOKIE[session_name()]

/*session_name() 函数返回当前会话名称。 如果指定 name 参数, session_name() 函数会更新会话名称, 并返回 原来的 会话名称*/

4、如果客户端禁用了cookie,则必须用url传递session_id即给予URL的SESSION

5、注销SESSION时不能用unset($_SESSION),可以使用$_SESSION = array()或则$_SESSION = null,正确注销session的方法如下:

$_SESSION = array();//清空session中的数据
    if (isset($_COOKIE[session_name()])) {
        setcookie(session_name(), '', time() - 3600, '/');//setcookie() 函数向客户端发送一个 HTTP cookie 
    }
session_destroy();//session是有时限的,关闭浏览器自然是会话中止,session立即注销

二.PHP中文件调用的注意点

1)require函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。

2)include函数一般放在流程控制的处理部分中。PHP程序网页在读到 include的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

3) include有返回值,而require没有(return)。

4) “require”的工作方式是为了让PHP程序得到更高的效率,当它在同一个PHP网页中解释过一次后,第二次出现便不会再解释,这是它的优点。不过严格来说,这也是它的唯一的缺点,因为它不会重复解释引入的文件,所以当PHP网页中使用循环或条件语句来引入文件时,“require”则不会做任何的改变。当有类似这样的情形时,就必须使用“include”命令来引入 文件了。

>5)当PHP遇到一个利用“include”方式引入的文件,它就会解释一次;遇到第二次时,PHP还是会重新解释一次。与“require”相比,“include”的执行效率则会下降许多;而且当引入文件中包含了用户自定义的函数时,PHP在解释的过程中会发生函数重复定义的问题。不过“include”也不是没有优点的,因为在PHP网页中,它会每遇到一次“include”命令就会重复解释一次,所以非常适合使用在循环或条件判断的语句里。

>6)“include_once()”函数和“require_once()” 函数,会先检查目标档案的内容是不是在之前就已经导入过了,如果是,便不会再次重复导入同样的内容。

>7)他们可以载入 php 或 html 文件。

自己的体会到的:
1.在a.php中调用了b.php,那么要在c.php中调用a.php时就不需要再次调用b.php.
2.在a.php中调用了b.php,在c.php中调用了b.php,那么在d.php中只能调用a.php或者c.php.
3.可以使用require_onceinclude_once来处理第2点的问题

三.文件加载的路径问题

1.相对路径

是相对于当前网页文件所在的位置来定位某个被加载的文件位置,主要依赖以下2个特殊符号:
  . / :表示当前位置,即当前网页文件所在的目录(文件夹);
  . . /:表示上一级位置,即当前网页文件所在目录的上一级目录;

2.绝对路径

绝对路径又分为本地绝对路径和网络绝对路径。
a:本地绝对路径

include "c:/d1/d2/a

b:网络绝对路径

include "http://www.sys.com.index.php";//实际这里载入的通常也都是 html文件,因为该服务器会将 php 文件执行后返回过来

3.无路径

形式就是没有给出路径信息,而只给出文件名,不推荐。

include "a.php"; //此时通常其实php语言引擎会在当前网页目录下找该文件。

你可能感兴趣的:(9月14日知识点记录)