注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 

日志

 
 

PHP 怪异之处  

2010-03-18 00:28:00|  分类: Web技术-Php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

PHP 怪异之处

一UNSET()函数:unset — 释放给定的变量

      说明:unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误,而unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。

   (1)如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

function destroy_foo() {
     global $foo;
     unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo; //output bar

(2)如果在函数中 unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

function foo(&$bar) {
     unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";//out put something

foo($bar);
echo "$bar\n"; //out put something

(3) 如果在函数中 unset() 一个静态变量,则 unset() 将销毁此变量及其所有的引用。(手册上如此说,但我觉得好像有些问题,问题在于后面这句话“将销毁此变量及其所有的引用”)

function foo() {
     static $a;
    $a++;
     echo "$a\n";
     unset($a);

    echo $a;//如果在此打印a,将找不到变量a.
}

foo(); //OUTPUT 1
foo(); //OUTPUT 2
foo(); //OUTPUT 3

以上是打印值,但与文档说法好像不一致(不知是我理解错了还是。。但愿我理解错了吧).

(4)unset与引用:当 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了.

$a = 1;
$b =& $a;
unset($a);

不会 unset $b,只是 $a。   

二 其它

(1)递增(减)与返回值

function get_count(){
static $count = 0;
return $count++; //右递加:先赋值再加
}

echo get_count(); //output 0
echo get_count(); //output 1

如以上改为:

function get_count(){
static $count = 0;
$count++;//右递加:先赋值再加(注意此处与上的不同)
return $count;
}

echo get_count(); //output 1
echo get_count(); //output 2

以上明显说明了右递加的原理,即“先赋值再加”

另外:“0” 在函数empty()中将被验证为空。

可变函数

PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。

变量函数不能用于语言结构,例如 ,,,,,, 以及类似的语句。需要使用自己的包装函数来将这些结构用作变量函数。

  评论这张
 
阅读(97)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017