关于PHP语言构造器介绍

yipeiwu_com6年前PHP代码库

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程序设计中的MVC编程思想

PHP的MVC编程思想目前已经被广泛使用于各种大型项目的开发,很多成熟的MVC框架也逐渐被大家所熟知并被广泛应用于各类项目中,比较常见的如ThinkPHP、codeigniter、Sym...

利用Memcached在php下实现session机制 替换PHP的原生session支持

方法文件 session实现文件:memcachedsession.php 实现原理(也是PHP内部session的实现原理): 1.先判断客户端有没有sessionid, a.没有就添...

PHP7新增运算符用法实例分析

PHP7新增运算符用法实例分析

本文实例讲述了PHP7新增运算符用法。分享给大家供大家参考,具体如下: NULL 合并运算符 其实是三元运算符的改造,减少的代码量 //原先的做法 //$lig = isset($_...

php+js实现裁剪任意形状图片

php+js实现裁剪任意形状图片

最近做到相关的项目,由于项目使用html2canvas,但是不支持css mask属性,故,利用php后台来裁剪。 准备两张图片,一张是镂空PNG图案,一张是任意纯色图片。 便能够在纯色...

PHP随机生成随机个数的字母组合示例

在很多系统环境下大家都会用到字母组合各种编码,下面推荐大家非常实用的PHP代码。 $num由几个字母组合。 $s字母包含大小写,可以自己调配大写还小写。 复制代码 代码如下: funct...