关于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 相关文章推荐
解决phpmyadmin 乱码,支持gb2312和utf-8
Nov 20 PHP
URL Rewrite的设置方法
Jan 02 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 PHP
php实现比较两个字符串日期大小的方法
May 12 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
Joomla开启SEF的方法
May 04 PHP
CI框架中类的自动加载问题分析
Nov 21 PHP
PHP的中使用非缓冲模式查询数据库的方法
Feb 05 PHP
php的常量和变量实例详解
Jun 27 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
Jun 02 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在各种web服务器的运行模式详解
2013/06/03 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python学习数据结构实例代码
2015/05/11 Python
python实现排序算法解析
2018/09/08 Python
Python转换时间的图文方法
2019/07/01 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
pytorch SENet实现案例
2020/06/24 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
法律专业实习鉴定
2013/12/22 职场文书
教学评估实施方案
2014/03/16 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
2015年校长新年寄语
2014/12/08 职场文书
前台接待岗位职责范本
2015/04/03 职场文书