相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等。
例子:

 if ( isset($user) ) { //do some thing
}

原因是isset是语言结构,而strlen是一个函数。还有echo 是个语言结构,不是个函数。
那什么是语言结构呢?它和函数有什么不同吗?


1、 什么是语言结构和函数

语言结构:就是PHP语言的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;
它可以有也可以没有变量和返回值。
函数:由代码块组成的,可以复用。从源码的角度来说,也就是基于Zend引擎的基础来实现的,
ext拓展库中的函数都是这样实现的。 

2、  语言结构为什么比函数快原因是在PHP中,函数都要先被PHP解析器(Zend引擎)分解成语言结构,
所以有此可见,函数比语言结构多了一层解析器解析。
这样就能比较好的理解,什么语言结构比函数快了。
3、  语言结构和函数的不同 语言结构比对应功能的函数快语言结构在错误处理上比较鲁棒,
由于是语言关键词,所以不具备再处理的环节语言结构不能在配置项(php.ini)中禁用,
函数则可以。语言结构不能被用做回调函数 

4、  语言结构列表
echo()
print()
die()
isset()
unset()
include(),注意,include_once()是函数
require(),注意,require_once()是函数
array()
list()
empty()


http://wayne173.iteye.com/blog/1766844

130.PHP的语言结构和函数的区别相关推荐

  1. php 结构和函数 区别吗,php的语言结构和函数的区别

    相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($user) ) { //do some thi ...

  2. C语言-结构体函数(录入书本的信息)

    C语言-结构体函数(struct)-指针,结构体变量 利用struct类型的结构体录入书本的信息,首先仅仅是使用结构体类型的变量,存放数据不使用结构体类型的指针 编译运行 OK没毛病,运行结果 这是利 ...

  3. C语言宏和函数的区别详解。

    ⭐️ 往期文章 ✨链接1:C语言文件打开关闭详解.文件顺序读写详解. ✨链接2:C语言文件随机读写详解(fseek.ftell.rewind). ✨链接3:C语言scanf/fscanf/sscnaf ...

  4. c语言结构体函数排序,(为什么不能给分?)结构体数组插入排序的函数有关问题,...

    当前位置:我的异常网» C语言 » (为什么不能给分?)结构体数组插入排序的函数有关 (为什么不能给分?)结构体数组插入排序的函数有关问题, www.myexceptions.net  网友分享于:2 ...

  5. scala基本语言结构以及函数算子(持续更新......)

    一.什么是scala scala是一种编程式语言,函数是一个独立的类,可以自由传输:是一种纯面向对象的语言,它具备java的一切特性,并在其基础上进行了扩展. 二.scala的基本数据类型 2.变量和 ...

  6. C语言结构体函数指针

    #include <stdio.h> #include <malloc.h> typedef struct Value //只有结构体变量才分配地址,而结构体的定义是不分配空间 ...

  7. c语言结构体函数如何调用,分函数的引用问题,如何调用结构体

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include struct Stu { char name[20]; int Xuehao; float Chinese; float Math; f ...

  8. c语言scanf与gets区别,C语言 scanf()和gets()函数的区别

    C语言 scanf()和gets()函数的区别 1.相同点:scanf( )函数和gets( )函数都可用于输入字符串 2.不同点:两者在功能上有所区别,具体区别如下: 要实现如下需求"从控 ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子 ...

  10. 循环数组函数c语言,C语言练习题2(分支结构循环结构数组函数2009-2012二级真题)..doc...

    C语言练习题2(分支结构循环结构数组函数2009-2012二级真题). C语言练习题(二) 一 选择题 1.有以下程序 #include void main() { int a: canf(" ...

最新文章

  1. jquery图片播放切换插件
  2. 美国科技界高度关注中国科技创新进展
  3. python画图代码turtle-介绍下Python里自带的一个有趣画图模块库:Turtle库
  4. golang中的指针
  5. bochs调试linux内核学习4 - bochs配置文件的$BXSHARE变量、bochs的System BIOS must end at 0xfffff错误、运行内核0.00版本
  6. boost::mpi模块实现传输数据类型的骨架和内容的通信器的测试
  7. 循环卷积和周期卷积的关系_基于单口RAM读写的卷积电路(下)
  8. Docker学习文档之三 其他相关-Docker常用命令
  9. BZOJ 2431 DP
  10. 从C到C++ string类
  11. linux 对象 调出r_[转载]linux系统下安装R包
  12. Pyhton-Web框架之【Django】
  13. 一键快速生成视频字幕的免费工具
  14. win10 20h2 计算机属性,Win10 20H2
  15. Python如何对XML 解析
  16. 统计学③——总体与样本的差异在哪里
  17. 最危害程序员职业生涯的三大观念
  18. 非常好听但比较难找的歌曲
  19. 前端cookie设置httpOnly和secure拿不到,换成localstorage+加密方式
  20. 哺乳时宝宝一边吃奶,另一边却自动流出来,这是怎么回事?

热门文章

  1. IE6和IE7的line-height和现代浏览器不一致的问题
  2. tyvj p1016 装箱问题( 简单DP 01背包)
  3. WordPress超级基本教程(转)
  4. 手把手教你使用R语言做评分卡模型
  5. python中in,not in,比较运算符,格式化输出,编码
  6. python中重要的基础概念
  7. UVA11107 Life Forms --- 后缀数组
  8. 深入理解Azure自动扩展集VMSS(3)
  9. ubuntu 更新源 或者 apt-get install 出错404 not found ,Failed to fetch
  10. 如何清除你的DNS缓存