`
fireDragonpzy
  • 浏览: 454316 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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

php 
阅读更多
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等。
例子:
         if ( isset($username[5]) ) {
                 // The username is at least six characters long.
}
原因是isset是语言结构,而strlen是一个函数。那什么是语言结构呢?它和函数有什么不同吗?
 
1、  什么是语言结构和函数
 
语言结构:就是PHP语言的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;它可以有也可以没有变量和返回值。
函数:    由代码块组成的,可以复用。
 
2、  语言结构为什么比函数快
原因是在PHP中,函数都要先被PHP解析器分解成语言结构,所以有此可见,函数比语言结构多了一层解析器解析。这样就能比较好的理解为
什么语言结构比函数快了。
 
3、  语言结构和函数的不同
 
          语言结构比对应功能的函数快
          语言结构在错误处理上比较鲁棒,由于是语言关键词,所以不具备再处理的环节
          语言结构不能在配置项(php.ini)中禁用,函数则可以。
          语言结构不能被用做回调函数
 
4、  语言结构列表
 
          echo()
          print(),没错,这是一个语言结构
          die()
          isset() :只用于变量
          unset()
          include(),没有include_once()
          require(),没有require_once()
          array()
          list()
          empty() :只用于变量

下述情况,isset() 返回 TRUE :

$var = "";
$var = array();
$var = 0;
$var = false;
目前为止:只有被赋值null或者不赋值才不通过,建议使用empty
 

摘自:http://blog.sina.com.cn/s/blog_475429950100hk75.html
分享到:
评论

相关推荐

    Matlab常用函数总结

    三、编程语言结构(Programming language constructs) 3.1 控制语句(Control flow) * break:终止最内循环 * case:同switch一起使用 * catch:同try一起使用 * continue:将控制转交给外层的for或while循环 * ...

    PyPI 官网下载 | constructs-3.3.95.tar.gz

    PyPI(Python Package Index)是Python官方的软件仓库,为开发者提供了无数的开源工具和库,其中“constructs”是一个非常重要的解析和构造二进制数据结构的库。本文将深入探讨constructs库的3.3.95版本,并结合其在...

    Python库 | constructs-10.0.35-py3-none-any.whl

    Constructs库的核心在于它的构造函数(Construct),每个构造函数都对应着一种数据类型或者数据结构。例如,`Byte`构造函数用于处理单个字节,`Int16ul`用于处理无符号的16位整数,而`String`则用于处理字符串。通过...

    salesforce_apex_language

    查询聚合函数和处理大型SOQL查询的方法也是重点部分。 在数据操作方面,文档讲解了如何使用Apex变量进行查询,以及如何使用SOQL语句查询所有记录。锁定语句部分说明了Apex如何处理数据库记录的锁定,以保证数据的...

    Python库 | constructs-3.3.11.tar.gz

    对于开发语言Python来说,Constructs库是一个强大的工具,特别适用于处理二进制数据和自定义协议。它的灵活性和易用性使其在后端开发中扮演了重要角色,尤其在处理网络通信、数据分析和系统集成等场景下,能显著提升...

    matlab函数表(功能分类).pdf

    #### 三、编程语言结构 (Programming Language Constructs) **3.1 控制语句 (Control Flow)** - **break**: 用于提前退出循环。 - **case**: 用于switch-case结构中,根据不同的条件执行相应的代码块。 - **catch*...

    PyPI 官网下载 | justinm.cdk-constructs-0.1.0.tar.gz

    本文将详细探讨PyPI上的一款Python库——justinm.cdk-constructs-0.1.0,以及其压缩包justinm.cdk-constructs-0.1.0.tar.gz的内容和用途。 首先,我们来了解justinm.cdk-constructs。这个库是针对AWS Cloud ...

    Python库 | constructs-10.0.56-py3-none-any.whl

    constructs是一个高级的、灵活的、基于Python的构造函数库,用于解析和构建二进制数据。它允许程序员以声明式的方式定义数据结构,然后自动处理解析和构造过程。这种库对于处理如网络协议、文件格式或者内存缓冲区等...

    The C Programming Language

    Presents a complete guide to ANSI ... This 2nd edition has been completely rewritten with additional examples and problem sets to clarify the implementation of difficult language constructs. 7 x 9 1/4.

    PyPI 官网下载 | constructs-3.3.123.tar.gz

    2. `constructs`:这是库的核心模块,包含所有核心类和函数,如`Bitwise`, `Bytes`, `Subconstruct`等。 3. `tests`:测试用例所在的目录,用于验证库的功能是否正常,开发者可以通过运行这些测试来确保安装正确。 ...

    Java Language Specification, Third Edition

    If you want to know the precise meaning of the language's constructs, this is the source for you. The book provides complete, accurate, and detailed coverage of the Java programming ...

    datadog-cdk-constructs:CDK构造库,可通过Datadog自动检测Lambda函数

    为和 Lambda函数安装和配置Datadog Lambda库。 从Lambda函数中启用跟踪和自定义指标的收集。 管理从Datadog转发器到Lambda函数日志组的订阅。 安装 yarn add --dev datadog-cdk-constructs # or npm install ...

    Python库 | constructs-3.2.68.tar.gz

    它允许程序员以高度可读的语法定义数据结构,然后能够方便地从字节流中解析和构建这些结构。这个库的强大之处在于它的灵活性和效率,使得处理复杂的数据结构变得简单。 Constructs库的核心概念是“构造体”...

    Python库 | aws-solutions-constructs.aws-lambda-s3-1.81.0.tar.gz

    `aws-solutions-constructs.aws-lambda-s3-1.81.0` 库提供了一种声明式的方式来配置 Lambda 函数和 S3 之间的连接。利用 AWS Cloud Development Kit (CDK),这是一个基于 TypeScript 的框架,可以使用熟悉的编程语言...

    Python库 | constructs-3.3.169-py3-none-any.whl

    Constructs是一个高级的、面向结构的字节流解析和构造框架。它允许开发者以声明性的方式定义数据结构,然后可以自动地解析和构建这样的数据结构。这使得处理二进制数据,如网络协议、文件格式或任何其他结构化数据流...

    The Dart Programming Language

    The text illuminates key programming constructs with significant examples, focusing on principles of the language, such as optional typing and pure object-orientation. Bracha thoroughly explains ...

    PyPI 官网下载 | aws-solutions-constructs.aws-lambda-s3-1.54.0.tar.gz

    在这个特定的版本1.54.0中,aws-lambda-s3构造体提供了预定义的模板,以便于在Lambda函数和S3之间建立连接。这使得开发者可以轻松地创建Lambda函数,当S3桶有新的对象上传或发生其他指定事件时,这些函数会被触发...

Global site tag (gtag.js) - Google Analytics