php 结构和函数 区别吗,php的语言结构和函数的区别
相信大家经常看到对比一些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的语言结构和函数的区别相关推荐
- c语言结构体成员变量默认值,C语言结构体要点笔记
近日,做一个东西却发现自己在C语言,特别是结构体这个知识点上还缺乏认识.所以在学习了网友的分享后,下面在下文记录一些重要的要点吧. 一.struct是一种复合数据类型(这一点很重要,结构体只是一个类型 ...
- c语言结构体实验报告加注释,C语言结构体实验报告.doc
C语言结构体实验报告 <高级语言程序设计>实验报告 实验序号:8 实验项目名称:结构体 学 号 姓 名 专业.班级 实验地点 指导教师 实验时间 一.实验目的及要求 1.掌握结构体变量的定 ...
- 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 ...
- c语言嵌套结构体数组,第22节 C语言结构体之结构体嵌套、结构体指针与结构体数组的代码实现...
结构体 #include //第一步 struct Student { //学号 int no; //姓名 char name[20]; //性别 char sex[10]; //成绩 double ...
- c语言结构体实现存储信息,用C语言结构体实现通讯录
实现一个通讯录: 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联 ...
- c语言结构体菜单显示框架,请教c语言结构体嵌套问题。field `atItem' has incomplete type...
//菜单项结构体 typedef struct { BYTE aucItemName[20]; //菜单项的内容 WORD32 dwItem ...
- C语言中结构体指针出现重定义,C语言结构体指针中包含结构体指针
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 将C++代码转化为C的过程中,一些C++的特性无法使用 类内私有变量在类内公共 ...
- c语言处理字符串函数的头文件,C语言字符处理函数 - 20131125的个人空间 - OSCHINA - 中文开源技术交流社区...
C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入.输出.合并.修改.比较.转换.复制.搜索几类. 使用这些函数可大大减轻编程的负担.用于输入输出的字符串函数,在使用前应包含头文件" ...
- c语言函数的使用步骤,c语言打开文件函数使用方法
ANSI C规定文件打开用函数fopen,关闭为fclose. 1.调用方式通常为: FILE *fp; fp=fopen(文件名, 打开方式); 2.参数说明: 文件名: 形如"myfil ...
最新文章
- Linux下给arm的引脚电平,ARM-Linux GPIO操作事宜
- Sql 中取小数点后面两位小数.
- python中str是什么函数_Python str()函数
- 职责链模式 php,php Chain of Responsibility 职责链模式
- JAVA反射+SOCKET实现远程方法调用
- 修复:安装 CUDA9.0 Patch 1 时载入文件后闪退(cuda_9.0.176.1_windows.exe)
- 系统安全防护之UNIX下***检测方法
- cocos 制作动态生成内容的列表_零代码工具,让你在线轻松制作交互内容!
- [ES6] 细化ES6之 -- async函数
- Kafka版本介绍Version2.4.0
- 那些“不顾一切”要搞开源的人,现在怎样了?
- 自学android要多长时间,自学android开发,从零开始学Android
- 基于Java Swing的进销存管理系统
- 互联网电商数据分析常用的指标
- lighttpd 配置php,Lighttpd常用配置方法
- 安卓手机 wifi 探针
- unixbench测试CPU性能工具/mbw测试内存
- 人类高质量程序员电脑配置(持续更新)
- 「兔了个兔」福兔贺春,纯CSS实现超精美月兔404界面(附源码)
- order finding before shor's algorithm
热门文章
- 观察者模式与职责链模式的相同和不同_GOF设计模式(策略模式,职责链模式)...
- mysql order by random,sql-MySQL:ORDER BY RAND()的替代方法
- eclipse ssh mysql_Eclipse 配置SSH 详解
- 《Reids 设计与实现》第十六章 集群(下)
- 【设计模式】第五章 责任链模式
- 基于 SpringBoot2.0+优雅整合 SpringBoot+Mybatis
- hdu3094 A tree game
- 最小路径和--p64--动态规划
- 转:【微信小程序】实现锚点定位楼层跳跃的实例
- 【python】使用枚举类