在 PHP 命名索引上加上引号是不必要的



是以下内容:

$arr = [
    foo => 'bar',
    bar => 'foo'
];

同:

$arr = [
    'foo' => 'bar',
    'bar' => 'foo'
];

换句话说,在命名索引上加上引号是没有必要的吗?什么时候才真正需要在字符串索引上加上引号?

你的第一个示例应该抛出一个通知。如果您不使用引号,那么 PHP 将查找具有该名称的常量。

php > $myArr = [abc => 'hello'];
PHP Notice:  Use of undefined constant abc - assumed 'abc' in php shell code on line 1
PHP Stack trace:
PHP   1. {main}() php shell code:0
Notice: Use of undefined constant abc - assumed 'abc' in php shell code on line 1
Call Stack:
    9.7779     350840   1. {main}() php shell code:0

我在 PHP 7.1.8 中运行了此示例,但是在 PHP 7.2 中已弃用。

PHP 将"裸字符串"转换为正确的字符串,但会给你一个警告。此功能将来可能会消失。

如果你真的,

真的想这样做(你不应该这样做(,它将作为日志工作,因为字符串与常量的格式匹配,即正则表达式

[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*

(不要这样做。只是不要。

相关内容

  • 没有找到相关文章

最新更新