不允许将函数调用用作默认值的目的是什么?

时间:2018-06-11 13:58:52

标签: php

PHP documentation说:

  

默认值必须是常量表达式,而不是(例如)a   变量,类成员或函数调用。

你能解释一下不允许使用函数调用(或其他函数)作为默认值的目的吗?

P.S。:实际上可以调用内置函数,就像array(),但不是自构

UPD: array is not a regular function

  

array()是一种用于表示文字数组的语言结构   不是常规功能。

1 个答案:

答案 0 :(得分:2)

它不是"目的" ,而是更多的技术限制。

默认值由解析器在解析源代码时建立。值必须是在解析时可用且解析器可以解释的值;即它不能依赖于运行时信息(没有仅在运行时存在的变量,没有其他可能在以后定义的函数),也不能是解析器无法评估的表达式(需要评估的复合表达式,没有函数调用)需要运行时)。这主要是为您提供简单的文字,如字符串,数字和数组文字。