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

例子:

if ( isset($user) ) {

//do some thing

}

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

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

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

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

2、  语言结构为什么比函数快

原因是在PHP中,函数都要先被PHP解析器(Zend引擎)分解成语言结构,所以有此可见,函数比语言结构多了一层解析器解析。这样就能比较好的理解,什么语言结构比函数快了。

3、  语言结构和函数的不同

(1)语言结构比对应功能的函数快

(2)语言结构在错误处理上比较鲁棒,由于是语言关键词,所以不具备再处理的环节

(3)语言结构不能在配置项(php.ini)中禁用,函数则可以。

(4)语言结构不能被用做回调函数

语言结构列表 :

echo()  print()  die() isset() unset() include()  array() list() empty()   require(),注意,include_once()是函数 ,require_once()是函数

标签:PHP,语言,区别,函数,php,strlen,isset,结构

来源: https://www.cnblogs.com/flzs/p/12251080.html

php 结构和函数 区别吗,php的语言结构和函数的区别相关推荐

  1. c语言结构体成员变量默认值,C语言结构体要点笔记

    近日,做一个东西却发现自己在C语言,特别是结构体这个知识点上还缺乏认识.所以在学习了网友的分享后,下面在下文记录一些重要的要点吧. 一.struct是一种复合数据类型(这一点很重要,结构体只是一个类型 ...

  2. c语言结构体实验报告加注释,C语言结构体实验报告.doc

    C语言结构体实验报告 <高级语言程序设计>实验报告 实验序号:8 实验项目名称:结构体 学 号 姓 名 专业.班级 实验地点 指导教师 实验时间 一.实验目的及要求 1.掌握结构体变量的定 ...

  3. python定义函数prime判断是否是素数_用自定义函数判断素数 用C语言编写自定义函数prime(int x),判断x是否为素数?...

    用C语言编写自定义函数prime(int x),判断x是否为素数? int prime(int x) { int i,k k=(int)sqrt( (double)x ) for(i=2i&l ...

  4. c语言嵌套结构体数组,第22节 C语言结构体之结构体嵌套、结构体指针与结构体数组的代码实现...

    结构体 #include //第一步 struct Student { //学号 int no; //姓名 char name[20]; //性别 char sex[10]; //成绩 double ...

  5. c语言结构体实现存储信息,用C语言结构体实现通讯录

    实现一个通讯录: 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供方法: 1.    添加联系人信息 2.    删除指定联系人信息 3.    查找指定联 ...

  6. c语言结构体菜单显示框架,请教c语言结构体嵌套问题。field `atItem' has incomplete type...

    //菜单项结构体 typedef struct { BYTE                aucItemName[20];   //菜单项的内容 WORD32              dwItem ...

  7. C语言中结构体指针出现重定义,C语言结构体指针中包含结构体指针

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 将C++代码转化为C的过程中,一些C++的特性无法使用 类内私有变量在类内公共 ...

  8. c语言处理字符串函数的头文件,C语言字符处理函数 - 20131125的个人空间 - OSCHINA - 中文开源技术交流社区...

    C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入.输出.合并.修改.比较.转换.复制.搜索几类. 使用这些函数可大大减轻编程的负担.用于输入输出的字符串函数,在使用前应包含头文件" ...

  9. c语言函数的使用步骤,c语言打开文件函数使用方法

    ANSI C规定文件打开用函数fopen,关闭为fclose. 1.调用方式通常为: FILE *fp; fp=fopen(文件名, 打开方式); 2.参数说明: 文件名: 形如"myfil ...

最新文章

  1. Linux下给arm的引脚电平,ARM-Linux GPIO操作事宜
  2. Sql 中取小数点后面两位小数.
  3. python中str是什么函数_Python str()函数
  4. 职责链模式 php,php Chain of Responsibility 职责链模式
  5. JAVA反射+SOCKET实现远程方法调用
  6. 修复:安装 CUDA9.0 Patch 1 时载入文件后闪退(cuda_9.0.176.1_windows.exe)
  7. 系统安全防护之UNIX下***检测方法
  8. cocos 制作动态生成内容的列表_零代码工具,让你在线轻松制作交互内容!
  9. [ES6] 细化ES6之 -- async函数
  10. Kafka版本介绍Version2.4.0
  11. 那些“不顾一切”要搞开源的人,现在怎样了?
  12. 自学android要多长时间,自学android开发,从零开始学Android
  13. 基于Java Swing的进销存管理系统
  14. 互联网电商数据分析常用的指标
  15. lighttpd 配置php,Lighttpd常用配置方法
  16. 安卓手机 wifi 探针
  17. unixbench测试CPU性能工具/mbw测试内存
  18. 人类高质量程序员电脑配置(持续更新)
  19. 「兔了个兔」福兔贺春,纯CSS实现超精美月兔404界面(附源码)
  20. order finding before shor's algorithm

热门文章

  1. 观察者模式与职责链模式的相同和不同_GOF设计模式(策略模式,职责链模式)...
  2. mysql order by random,sql-MySQL:ORDER BY RAND()的替代方法
  3. eclipse ssh mysql_Eclipse 配置SSH 详解
  4. 《Reids 设计与实现》第十六章 集群(下)
  5. 【设计模式】第五章 责任链模式
  6. 基于 SpringBoot2.0+优雅整合 SpringBoot+Mybatis
  7. hdu3094 A tree game
  8. 最小路径和--p64--动态规划
  9. 转:【微信小程序】实现锚点定位楼层跳跃的实例
  10. 【python】使用枚举类