PHP的语言结构和函数的区别
相信大家经常看到对比一些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()
PHP的语言结构和函数的区别的更多相关文章
- (转)PHP的语言结构和函数的区别
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($user) ) { //do some thi ...
- js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么
js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么 一.总结 一句话总结:js中是对象点方法的形式,这些方法都是对象的方法,而在php.java中却不是这样. 1.j ...
- php入门 数据类型 运算符 语言结构语句 函数 类与面向对象
php PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them ...
- Go语言中方法和函数的区别
今天看<Go语言实战>发现方法和函数不太一样,写的格式不一样,用法也不一样.所以记一次笔记. 在Go语言中,函数和方法不太一样,有明确的概念区分.其他语言中,比如Java,一般来说,函数就 ...
- php中 include 、include_once、require、require_once4个语言结构的含义和区别
对于不同页面中的相同代码部分,可以将其分离为单个文件 ,通过include引入文件. 可以提高代码的复用率 include 和include_once都有引入文件的作用 使用的语法是 :include ...
- PHP 语言结构(Language constructs)和函数的区别
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($username[5]) ) { // The ...
- PHP:函数和语言结构(转)
转自:https://www.cnblogs.com/fanqiechaodan/articles/5222366.html 什么是语言结构呢?它和函数有什么不同吗? 1. 什么是语言结构和函数 语 ...
- 【嵌入式开发】C语言 结构体相关 的 函数 指针 数组
. 作者 : 万境绝尘 转载请注明出处 : http://www.hanshuliang.com/?post=30 . 结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同; -- 可进行 ...
- 在C语言结构体中添加成员函数
我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...
随机推荐
- 点滴积累【C#】---C#实现上传照片到物理路径,并且将地址保存到数据库,
效果: 思路: 首先,获取图片物理地址,然后进行判断将图片保存到文件夹下,再将图片的信息保存到数据库. 数据库: create table image1 ( ID ,) primary key, Im ...
- 如何启动mininet实例上的wireshark图形界面
启动wireshark 要启动mininet实例上的wireshark的图形界面,其实关键点只有两个: 保证宿主机上安装了X11 使用ssh -Y mininet@192.168.56.102 登录进 ...
- Effective Java-第4章
第4章 类和接口 类和接口是Java程序设计语言的核心,它们也是Java语言的基本抽象单元.Java语言提供了许多强大的基本元素,供程序员用来设计类和接口. 13. 使类和成员的可访问性最小化 要区别 ...
- atitit.jQuery Validate验证框架详解与ati Validate 设计新特性
atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...
- C# asp.net页面常用语法,页面包含
搞.net开发这么多年,知道和用过包含include指令吗? <%@ Page Language="C#" AutoEventWireup="true" ...
- 获取真实的IE版本(转)
IE 的浏览器模式和文本模式(二) 发表于 2013-09-07 Author: Jerry Qu 文章目录 判断真正的 IE 版本 JScript 引擎版本号 文本模式对 JScript 没影响? ...
- android跨进程通信(IPC)——AIDL
转载请标明出处: http://blog.csdn.net/sinat_15877283/article/details/51026711: 本文出自: [温利东的博客] 近期在看 @任玉刚 大神编写 ...
- 迅搜sdk试用
1. sdk支持PHP 2. 针对mysql的某个库的某个表??进行索引,简单的说就是一个project,需要对应一个配置文件: 3. 分索引服务与搜索服务两个,另带中文分词功能:索引数据会有演示,但 ...
- js阻止事件冒泡和标签默认行为
////阻止事件冒泡函数和 // 阻止默认浏览器动作(W3C) 要一起使用效果好<a href="/Scripts/newfiber_js_lib/images/1.jpg" ...
- 华为OJ平台试题 —— 数组:输入n个整数,输出当中最小的k个
输入n个整数.输出当中最小的k个: 代码: /* * 输入n个整数,输出当中最小的k个. * 输入说明:1.输入两个整数:2.输入一个整数数组 * 输出说明:输出一个整数数组 */ <p ...