关于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编写大型网站问题集
Mar 06 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
Apr 25 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
php使用file函数、fseek函数读取大文件效率对比分析
Nov 04 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
Aug 17 PHP
PHP自定义序列化接口Serializable用法分析
Dec 29 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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
PHP4和PHP5共存于一系统
2006/11/17 PHP
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
世界上最短的数字判断js代码
2019/09/09 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
Pytorch释放显存占用方式
2020/01/13 Python
利用python实现逐步回归
2020/02/24 Python
Python PIL库图片灰化处理
2020/04/07 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
中国制造网:Made-in-China.com
2019/10/25 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
abstract class和interface有什么区别
2013/08/04 面试题
会计专业推荐信
2013/10/29 职场文书
班主任先进事迹材料
2014/12/17 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
经理岗位职责
2015/02/02 职场文书
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js
java开发双人五子棋游戏
2022/05/06 Java/Android