必须在任何其他输出发送前对 cookie 进行赋值
setcookie() 函数向客户端发送一个 >
cookie 是由服务器发送到浏览器的变量。
cookie 通常是服务器嵌入到用户计算机中的小文本文件。
每当计算机通过浏览器请求一个页面,就会发送这个 cookie。cookie 的名称指定为相同名称的变量。
必须在任何其他输出发送前对 cookie 进行赋值。如果成功,则该函数返回 true,否则返回 false。
setcookie(name, value, expire, path, domain, secure)
name 必需。规定 cookie 的名称。
value 必需。规定 cookie 的值。
expire 可选。规定 cookie 的有效期。
path 可选。规定 cookie 的服务器路径。
domain 可选。规定 cookie 的域名。
secure 可选。规定是否通过安全的 >
从图上可以看到,PHP实现了一个典型的动态语言执行过程:拿到一段代码后,经过词法解析、语法解析等阶段后,源程序会被翻译成一个个指令 (opcodes),然后ZEND虚拟机顺次执行这些指令完成 *** 作。PHP本身是用C实现的,因此最终调用的也都是C的函数,实际上,我们可以把PHP看 做是一个C开发的软件。
PHP的执行的核心是翻译出来的一条一条指令,也即opcode。
Opcode是PHP程序执行的最基本单位。一个opcode由两个参数(op1,op2)、返回值和处理函数组成。PHP程序最终被翻译为一组opcode处理函数的顺序执行。
常见的几个处理函数:
1 ZEND_ASSIGN_SPEC_CV_CV_HANDLER : 变量分配 ($a=$b)
2 ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER:函数调用
3 ZEND_CONCAT_SPEC_CV_CV_HANDLER:字符串拼接 $a$b
4 ZEND_ADD_SPEC_CV_CONST_HANDLER: 加法运算 $a+2
5 ZEND_IS_EQUAL_SPEC_CV_CONST:判断相等 $a==1
6 ZEND_IS_IDENTICAL_SPEC_CV_CONST:判断相等 $a===1
你这种需求可以用session保存数据:
<phpsession_start();
$i=0;
if(isset($_POST['submit'])){
if(isset($_SESSION['i'])){
$_SESSION['i']++;
}else{
$_SESSION['i'] = $i;
}
var_dump($_SESSION['i']);
}
>
<html>
<body>
<form action="" method="post">
<input type="submit" name="submit" value="next" />
</form>
</body>
</html>
当然session也不是永久的,如果永久保存,需要数据库或者保存到文件里。
正确答案应该是 2 1 <-->1 2
if($n>1)
test($n-1);
else
echo '<-->';
$j=2;
echo $n" ";//这个语句是在if else语句外的!!等调用完if else的语句后,这句依然要被执行,也就是说,在递归调用到最底层,往回的时候,也执行了这些语句~ 1 2 就是这里来的!
test(2);
function test($n){
echo $n" ";//输出2" "
if($n>1)
test($n-1);//调用test(1)
echo $n" ";//输出1
if($n>1)
test($n-1);
else
echo "<-->";
$j=2;
echo $n" ";//输出1" "
else
echo '<-->';
$j=2;//这句是没作用的
echo $n" ";//输出2" "
}
这样还不明白的话,无解了!多看看递归的思想吧!
以上就是关于php不是顺序执行的吗全部的内容,包括:php不是顺序执行的吗、用PHP编写的一行行代码 是怎么在服务器端运行的、php 数字加1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)