These do work in the example given, but it's not correct. In PHP, unquoted strings (even when used as keys for a hash) are interpreted as constants. While it does fall back to a string interpretation if there is no constant defined with that name, this is dangerous. If error reporting is enabled at the appropriate level (anything including E_NOTICE, like E_ALL):

```
$var = array(hello => 'foo');
```

This will produce the following warning:

```
Notice: Use of undefined constant hello - assumed 'hello' in test.php on line 2
```

If there was a "hello" constant defined in the global namespace, its value would be used as the key of that array:

```
define('hello', "hey i'm a constant");

$var = array(hello => 'foo');
print_r($var);
```
```
Array
(
    [hey i'm a constant] => foo
)
```