PHP关键字、PHP 语言结构(Language constructs)和函数的区别

1、 什么是语言结构和函数 语言结构: 就是PHP语言的关键词,语言语法的一部分; 它不可以被用户定义或者添加到语言扩展或者库中; 关键字也可以有参数和返回值。 函数: 由代码块组成的,可以复用。 2、 语言结构为什么比函数快 原因是在PHP中,函数都要先被PHP解析器分解成语言结构,所以函数比语言结构多了一层解析器解析。 这样就能比较好的理解为 什么语言结构比函数快了。 3、 语言结构和函数的不同 语言结构比对应功能的函数快 语言结构在错误处理上比较鲁棒,由于是语言关键词,所以不具备再处理的环节 语言结构不能在配置项(php.ini)中禁用,函数则可以。 语言结构不能被用做回调函数

可是tammd在php manual中实在是误导,大家可能都知道echo 是个语言结构,好像很神秘,其实就是关键字,只是在php中有些关键字很像函数,也有 参数,甚至有返回值,可恶的PHP Manual中将类似echo的关键字的说明放到了function.XXX这种链接里面,而将关键字列表放到了附录里面,啃die啊如:http://www.php.net/manual/en/function.echo.php,这不明摆着说你 echo是个函数吗!!!每次面试或者高手们都会拿这些函数样的关键字 做考题,fuuuuuuccckkkk. 

下面列举一下PHP5中的关键字,以及像函数的关键字 

2、PHP关键字列表  这页会给出关键字自哪个版本开始有的,比较凌乱分个类吧,关键字都是不区分大小写的 

类型 callable (as of PHP 5.4) function static var global const 流程控制 break switch case default try catch continue do while else elseif endfor declare enddeclare endforeach endif endswitch endwhile final finally (as of PHP 5.5) for foreach goto (as of PHP 5.3) if return throw yield (as of PHP 5.5) use 逻辑 and xor or 面向对象 abstract class as clone extends implements instanceof insteadof (as of PHP 5.4) interface namespace (as of PHP 5.3) new private protected public trait (as of PHP 5.4) 令人迷糊的函数式关键字 __halt_compiler() array() die() empty() echo() eval() exit() isset() list() print() unset() include() include_once() require() require_once() 还有很多预定义的常量 __CLASS__ __DIR__ (as of PHP 5.3) __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ (as of PHP 5.3) __TRAIT__ (as of PHP 5.4) 使用function_exist('func_name'), 如果传入 关键字 则也返回FALSE的狗血的echo $s = '12345';//字符串就是char数组,php的数组本质上是带双向链表的hashtable $s[$s[1]] = '2' ; echo $s . "<br>"; echo 1+2+"3+4+5"; 算术运算符从左至右 解析 数字,直到碰到非数字字符 echo "<br>"; echo 1>>0; echo 2>>1;右移除2 echo 3<<2;左移乘2 echo "<br>"; echo true; 1 echo false; 不显示任何东西 echo function_exists('include_once'); 结果: 12245 6 1112 1 echo "true"; echo "false"; echo 'true'; echo 'false'; 结果: true false true false 再次重申 echo FALSE;什么也不输出

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Clive的技术分享

PHP常用array函数

函数名 函数作用 array_chunk 数组分割 array_column 获取数组的某一列 array_combine 两个数组分别...

40960
来自专栏JAVA高级架构

JVM并不是那么重量级

译者注:很多人误认为JVM是一个很重量级的框架,本文作者之前也是这么认为的,但是在这篇文章中,作者从几个层面分析了一下,可以看出JVM并不是我们想象中的那么“重...

29450
来自专栏Clive的技术分享

PHP中session和cookie的原理及优缺点SessionCookieCookie和Session的区别和联系

Session Session的机制 session机制采用的是在服务器端保持状态的方案,并且有自己对应的唯一标识session_id,区分不同用户之前的信息。...

79540
来自专栏Clive的技术分享

实现PHP内部的通知机制,如当一个类的属性发生变化时,另外一个类就可以收到通知设计模式:观察者模式使用场景参考链接

设计模式:观察者模式 当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。 使用场景 一个事件发生后,要执行一连串更新操作。传统的编程方式,就是...

98670
来自专栏Clive的技术分享

PHP高并发大流量常规处理

增加服务器,提升服务器性能; nginx负载均衡; php、html静态化; 优化mysql,优化索引,mysql查询缓存; 引入redis、memcache;...

53460
来自专栏Clive的技术分享

PHP常用魔术方法

方法名称 使用场景 __construct 对象创建完成后第一个被对象自动调用的方法 __destruct 销毁一个类之前执行的一些操作 ...

48940
来自专栏PHP实战技术

PHP垃圾回收机制

PHP垃圾回收机制 1、每一个变量定义时都保存在一个叫zval的容器里面,这里面包含了数量的类型和和值,还包含了一个refcount(理解为存在几个变量个数)和...

35840
来自专栏Clive的技术分享

PHP常用string函数

函数名称 函数作用 chr 指定ASCII值返回字符 ord 字符串第一个字符的ASCII值 addslashes 转义 strip...

44850
来自专栏Clive的技术分享

PHP实现单例模式

<?php /** * 单例模式实现 */ class Singleton { //静态变量保存全局实例 private static $ins...

34170
来自专栏Clive的技术分享

cgi、fastcgi及php-fpm分别是什么cgifastcgiphp-fpm

cgi cgi是通用网关接口定义。当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。接下来PHP解析器会...

31760

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励