哪些字符可以使用简单的语法直接跟随解析的PHP变量?

时间:2017-10-05 14:59:46

标签: php string variables

例如,以下内容不会根据需要打印"hello john_doe",因为未定义$first_

$first = 'john';
$last = 'doe';

echo "hello $first_$last";

也许没有?

1 个答案:

答案 0 :(得分:2)

不能成为变量名称一部分的任何字符都可以在那里使用 - 如果字符可以成为变量名称的一部分,PHP无法确定它是否是&#39是它的一部分或不是......

根据the manual

  

变量名遵循与PHP中其他标签相同的规则。有效的变量名称以字母或下划线开头,后跟任意数量的字母,数字或下划线。作为正则表达式,它将表达为:' [a-zA-Z_ \ x7f- \ xff] [a-zA-Z0-9_ \ x7f- \ xff] *'

所以,回答你的问题:除了字母,数字或下划线之外的任何字符都可以使用简单的语法直接跟随解析的PHP变量...
(请注意,ƒ©等特殊字符属于正则表达式中的\x7f-\xff UTF-8范围,并且是有效字符。 / p>

除了一些例外情况 - 例如,您无法使用:

  • [因为它被视为对数组密钥的访问权。
  • {$因为它被视为尝试使用变量(例如{$var})。
  • ->后跟一个可以作为变量一部分的字符,因为它被视为对某个属性的访问权限(例如->prop)。