Home  >  Article  >  Backend Development  >  PHP 语言构造(Language constructs)和函数的区别

PHP 语言构造(Language constructs)和函数的区别

WBOY
WBOYOriginal
2016-06-13 13:08:011166browse

PHP 语言结构(Language constructs)和函数的区别

相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等。
例子:
         if ( isset($username[5]) ) {
                 // The username is at least six characters long.
}
原因是isset是语言结构,而strlen是一个函数。那什么是语言结构呢?它和函数有什么不同吗?
 
1、  什么是语言结构和函数
 
语言结构:就是PHP语言的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;它可以有也可以没有变量和返回值。
函数:    由代码块组成的,可以复用。
 
2、  语言结构为什么比函数快
原因是在PHP中,函数都要先被PHP解析器分解成语言结构,所以有此可见,函数比语言结构多了一层解析器解析。这样就能比较好的理解为
什么语言结构比函数快了。
 
3、  语言结构和函数的不同
 
          语言结构比对应功能的函数快
          语言结构在错误处理上比较鲁棒,由于是语言关键词,所以不具备再处理的环节
          语言结构不能在配置项(php.ini)中禁用,函数则可以。
          语言结构不能被用做回调函数
 
4、  语言结构列表
 
          echo()
          print(),没错,这是一个语言结构
          die()
          isset() :只用于变量
          unset()
          include(),没有include_once()
          require(),没有require_once()
          array()
          list()
          empty() :只用于变量

下述情况,isset() 返回 TRUE :

$var = "";
$var = array();
$var = 0;
$var = false;
目前为止:只有被赋值null或者不赋值才不通过,建议使用empty
 

摘自:http://blog.sina.com.cn/s/blog_475429950100hk75.html
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn