php:语言结构和函数的区别

前言
这次我们要讲的是语言结构和函数的区别,我相信对于大多数php初学者来说很难注意到这些区别。

因为要实现一个功能,我们可以找到很多种方法来实现它,但是怎么选择,怎么找出最高效的方法才是关键,同样的功能,但是不同样的代码,执行效率却不一样,除了在尽可能减少时间和空间复杂度少的算法上,我们还可以避免选择一些函数,尽量选择语言结构来处理,进而提高代码的质量。

知识点很简单,但是很实用。

 

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

函数:由代码块组成的,可以复用。从源码的角度来说,也就是基于Zend引擎的基础来实现的,ext拓展库中的函数都是这样实现的。

 
二、语言结构为什么比函数执行效率高?
因为函数在执行的时候都要先被PHP解析器分解成语言结构,然后在执行语言结构。由此可见,函数比语言结构多了一层解析器解析,相当于函数是在语言结构外包装了一层。所以语言结构比函数要效率高。

 

三、php语言结构有哪些?
echo、print、die、isset、unset、include、require、array、list、empty 等。

注: include_once()、require_once()是函数.

 

四、怎么判断是语言结构还是函数 ?
<?php

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

check("isset");//输出isset为语言结构
check("array_push");//输出array_push为函数
 

小结:
语言结构不可再php.ini中禁用、函数可以禁用。
php.ini中查找 disable_functions =
在=后添加函数名,多个函数名用,分割
例如:disable_functions = exec,shell_exec

最后还是希望大家尽量使用语言结构,避免使用函数。
————————————————
版权声明:本文为CSDN博主「蝶开三月」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/panjiapengfly/article/details/102746061

posted on 2021-05-01 20:20  畅行意林  阅读(89)  评论(0编辑  收藏  举报