我觉得,在初学过程中变量的传递肯定是一个比较头疼的问题。
所以最近在做的感恩节活动,laravel建blog的过程中,都遇到了不小问题。所以最近决定把各种变量之间传递的方式理清楚。
先说PHP文件间的变量传递,如何实现这个变量过程的传递呢?通常有四种方式。
第一种 链接的方式
利用超链接 url的方式给PHP文件传递变量和信息是非常常见的,这个无论是PHP到PHP,还是html到php,还是js到php,都是非常可行的方法。
常见写法
<?php
http://www.xyz.com/qr.php?data1=123&data2=456
上面这段代码就完成一个给qr.php传入了变量$data1=123,变量$data2=456; 对于这样形式的链接 只要在qr.php中利用一个get函数就可以完成变量的传递
//qr.php
<?php
echo $_GET['data1'];
echo $_GET['data2'];
?>
第二种 常见的表单传递
<form action ="qr.php" method="get">
<input type = "text" name="data1">
<input type ="submit" name="submit" value="提交表单" />
</form>
action直接指定了表单提交的地址,可以是本机的相对地址,也可以是绝对地址,可以是url,如果写成百度 那么就会想百度调教一个 data1=输入 的变量。
如果action写成php,那么就会把表单中的变量传递给php。传递的方式method,有两种一中是POST,还有一中是GET。
第三中是使用服务器Session。
Session的工作原理:
1)当一个session第一次被启用时,一个唯一的标识被存储于本地cookie中
2)首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。
3)当执行PHP脚本,使用session_register()函数注册session变量。
4) 当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时加载使用。
session是解决http协议无状态问题的服务器解决方案。
<?php
session_start();
$_SESSION["temp"] =array('123','456','789')
?>
要想使用session,必须启动session。session_start();就是启动session的方法。一般要写在最前面。
第二语句地应了一个$_SESSION["temp"]数组,数组的名称是$_SESSION["temp"],里面存储了3个字符串。
在其他php页面中接受session
<?php
session_start();
for ($i=0;$i<3;$i++)
{
echo $_SESSION['temp'][$i].'<br />';
}
?>
最后一种COOKIE
使用客户端浏览器的cookie。
<?php
setcookie('cookie',123);
?>
使用cookie就在其他php中获取cookie
<?php
$a = $_COOKIE['cookie'];
echo $a;
?>
post,get基本用于表单和url传参,cookie,session是把变量保存在一个全局变量中。