前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP中函数和语言结构的区别

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

原创
作者头像
C4rpeDime
发布2018-07-23 23:08:19
7360
发布2018-07-23 23:08:19
举报
文章被收录于专栏:黑白安全黑白安全

关于PHP中的函数和语言结构的区别,本文给大伙逐步分析。函数众所周知它的三要素为:函数名、参数、返回值,调用方式采用函数名加括号()的形式进行调用。语言结构可以理解成是PHP中的保留关键字中的一部分,例如for、foreach、isset,这些均为语言结构。

语言结构和函数它们在性能,语言结构会快一些,例如isset和is_null的区别,isset是语言结构而is_null则是函数,在代码运行解析isset语句的的时候例如:

isset($var)这个指令, 会被分析成一条Opcode:ZEND_ISSET_ISEMPTY_VARS.

而is_null作为函数可以这样使用:

代码语言:javascript
复制
<?php
 
$var = NULL;
 
$func = "is_null";
 
$func($var);
 
?>

在运行测试中表明isset会比is_null快上一个档次。

所以能用语言结构解决的需求,尽量选择语言结构,我们可以通过以下方法判断是语言结构还是函数:

代码语言:javascript
复制
//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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档