PHP中的语言结构(转载,修正了原文中的一些错误)

来源:互联网 发布:淘宝的实名认证怎么弄 编辑:程序博客网 时间:2024/05/16 00:46
原文链接 http://blog.csdn.net/hsd2012/article/details/51103646

本文对原文的一些错误进行了修正,也加入了部分自己的理解

1.什么是语言结构

语言结构:就是PHP语言的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;它可以有也可以没有变量和返回值。

2.语言结构执行速度快的原因

函数都要先被php解析器(Zend引擎)分解成语言结构,所以,函数比语言结构多了一层解析器解析,速度就相对慢了

3.php中语言结构有哪些

  • echo()
  • print()
  • die()
  • isset()
  • unset()
  • include()

    (注意,原文中专门说 include_once()是函数,经测试, include_once也是语言结构,测试环境php5.4.31. require_once也一样)

  • require()

  • array()
  • list()
  • empty()

4.怎样判断是语言结构还是函数

使用function_exists

function check($name){    if(function_exists($name)){        echo $name.'为函数';    }else{        echo $name.'为语言结构';    }}

5.语言结构与函数的区别

  1. 语言结构比对应功能的函数快
  2. 语言结构在错误处理上比较鲁棒,由于是语言关键词,所以不具备再处理的环节 (即不可以try catch或者错误抑制符@处理)
  3. 语言结构不能在配置项(php.ini)中禁用,函数则可以。
  4. 语言结构不能被用做回调函数

备注:
php.ini中怎样禁用函数?
php.ini中查找 disable_functions =
在等于后添加函数名,多个函数名用,分割
比如
disable_functions =
exec,passthru,popen,proc_open,shell_exec,system,chgrp,chmod,chown

原创粉丝点击