PHP中函数和语言结构的区别

1.什么是语言结构?
php语言关键字、语言语法的一部分,不可以不被用户定义或者添加到语言库中、它可以有也可以没有变量和返回值 。

2.什么是函数?
由代码块组成的,可以复用。

3.两者不同点:

  • 语言结构比对应的函数执行效率要高
  • 语言结构是关键字,出错后不可再处理
  • 语言结构不能通过配置项 php.ini 来禁用,函数可以通过 (disable_funcitions=函数名,函数名) 来禁用
  • 语言结构不能当作回调函数使用,函数可以
  • 语言结构不能当作可变变量来执行,函数可以

4.如何判断是函数还是语言结构?

// 可通过 function_exists() 来判断
// var_dump 出来的 bool 值,为 true 是函数,为 false 是语言结构
var_dump(function_exists('echo')); //false
var_dump(function_exists('print')); //false
var_dump(function_exists('for')); //false
var_dump(function_exists('foreach')); //false
var_dump(function_exists('array')); //false
var_dump(function_exists('eval')); //false
var_dump(function_exists('list')); //false
var_dump(function_exists('sort')); //true
var_dump(function_exists('substr')); //true
var_dump(function_exists('session_start')); //true
var_dump(function_exists('var_dump')); //true
var_dump(function_exists('ord')); //true

参考:
https://blog.csdn.net/njys1/article/details/79135302
http://www.laruence.com/2009/12/09/1180.html

Author: thinkwei

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注