PHP:什么是语言结构,为什么我们需要它们?

2022-08-30 22:47:23

我不断遇到这样的陈述:

echo是一种语言构造,但 print 是一个函数,因此具有返回值

die是一种语言结构

我的问题是这些语言结构是什么,更重要的是我们为什么需要它们?


答案 1

语言结构被硬编码到PHP语言中。他们不按正常规则行事。

例如,每当您尝试访问不存在的变量时,都会收到错误。要在访问变量之前测试该变量是否存在,您需要咨询或:issetempty

if (isset($foo))

如果是正常函数,您也会在那里收到警告,因为您正在访问以将其传递到函数中。由于是一种语言结构,因此这可以正常工作而不会引发警告。这就是为什么文档明确区分了普通函数和语言构造的原因。isset$fooissetisset


答案 2

语言结构是构成语言的东西:像“if”“for”while“”function“等等。

PHP手册中提到的“echo”,“die”或“return”等内容是为了清楚地表明这些不是函数,并且它们并不总是像函数一样。

你可以把“echo”称为“echo()”,这样它可能会让初学者感到困惑。这就是为什么他们在手册中明确说明的原因。让每个人都绝对清楚。

可能被误认为是函数的语言构造的其他示例是“array()”,“list()”和“each()”。


推荐