关于PHP语言构造器介绍


Posted in PHP onJuly 08, 2013

PHP里有echo、print、die、require等几个特殊的关键字,虽然它们用起来像是函数,但实际上更类似于if、while这样控制语句,而不是一个函数。也就是说,当解释器遇到:

print 'Hello world';

这样的一个表达式的时候,并不会把它转换成函数调用,而是直接映射到一系列预先定义好的操作。使用语言构成的时候可以加括号,也可以不加括号,但是使用函数的时候必须加括号。

你提到的“可变函数”,英文是”variable function”,变量函数的意思,翻译成“可变函数”也有点扭曲原义,把variable(变量)这个名词按形容词(可变)的含义来翻译了。PHP里的Variable function是指如果在一个变量后面加上一对括号,那么解释器会试图寻找名字和这个变量的值一样的一个函数,如果找到了就执行它。例如,有一个函数foo(),那么可以用下面这种方式调用这个函数:

// 初始化一个字符串变量 
$func = 'foo'; // 找到名字和这个字符串一样的函数,并且执行它 
$func();

所以,你提到的这句话的含义就是,使用变量函数这种方式来调用一个语言构成是不允许的,例如下面这样:

$func = 'print'; // 这样做会产生异常,因为print不是一个函数,而是语言的构成部分 
$func('hello world');

执行这段代码,会产生一个异常,函数print没有定义。

PHP 相关文章推荐
十天学会php之第二天
Oct 09 PHP
mysql limit查询优化分析
Nov 12 PHP
Optimizer与Debugger兼容性问题的解决方法
Dec 01 PHP
php pki加密技术(openssl)详解
Jul 01 PHP
php读取csv数据保存到数组的方法
Jan 03 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 PHP
redis+php实现微博(一)注册与登录功能详解
Sep 23 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
详解PHP设计模式之依赖注入模式
May 25 PHP
php5.5新数组函数array_column使用
Jul 08 #PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 #PHP
解析将多维数组转换为支持curl提交的一维数组格式
Jul 08 #PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 #PHP
php打开文件fopen函数的使用说明
Jul 05 #PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 #PHP
如何利用PHP执行.SQL文件
Jul 05 #PHP
You might like
php仿ZOL分页类代码
2008/10/02 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
php封装的验证码类分享
2017/02/26 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
Angular2  NgModule 模块详解
2016/10/19 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
python中enumerate函数遍历元素用法分析
2016/03/11 Python
python各种语言间时间的转化实现代码
2016/03/23 Python
python爬取指定微信公众号文章
2018/12/20 Python
python+mysql实现教务管理系统
2019/02/20 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
文秘专业大学生求职信
2013/11/10 职场文书
运动会四百米广播稿
2014/01/19 职场文书
护士的自我鉴定
2014/02/07 职场文书
《乞巧》教学反思
2014/02/27 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
交通肇事罪辩护词
2015/05/21 职场文书