Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:在关联数组索引中使用空格_Php_Associative Array - Fatal编程技术网

PHP:在关联数组索引中使用空格

PHP:在关联数组索引中使用空格,php,associative-array,Php,Associative Array,这种不良做法/会导致问题吗 $_SESSION['stuff to keep'] 与在索引上调用str_replace()相反。这不会导致问题,但数组键通常被视为变量名,因此应根据相同的考虑因素进行选择。在我看来,似乎添加了不必要的空白。。。我通常不使用空格。但是,如果你这样做,请确保引用数组键。你可以这样做,它会起作用——即使我通常不会在“手动”设置数组键时这样做,但有时会在从文件(例如)获取键时发生,我从来没有遇到过任何问题 但是,如果您正在使用这些函数,这可能会导致某种问题。如果它创建的

这种不良做法/会导致问题吗

$_SESSION['stuff to keep']

与在索引上调用
str_replace()
相反。

这不会导致问题,但数组键通常被视为变量名,因此应根据相同的考虑因素进行选择。

在我看来,似乎添加了不必要的空白。。。我通常不使用空格。但是,如果你这样做,请确保引用数组键。

你可以这样做,它会起作用——即使我通常不会在“手动”设置数组键时这样做,但有时会在从文件(例如)获取键时发生,我从来没有遇到过任何问题


但是,如果您正在使用这些函数,这可能会导致某种问题。如果它创建的变量名称中带有空格(不知道是否会),访问变量将很困难(但并非不可能)。

这是一种不好的做法,但不是因为空格

// file foo.php
$_SESSION['stuff to keep'] = 42;

// file bar.php
if ($_SESSION['stufft o keep'] == 42) frobnicate();
在这里,您的代码是无声的行为不端,并且bug可能需要一段时间才能被发现。好的做法是使用PHP强制的名称,例如类常量:

$_SESSION[Stuff::TO_KEEP] = 42;

if($_SESSION[Stuff::TOO_KEEP] == 42) 
// error: no constant TOO_KEEP in class Stuff
然后,您可以将该常量定义为您感兴趣或可读的任何常量,例如
“stuff to keep”
(带空格)。当然,
extract()
和强制转换到
object
将不再有效,但您不应该在会话中这样做


当然,允许用户输入文本到会话密钥中是一个明显的安全错误。

+1 Good point-extract将抛出一个错误(警告?),如果要求它提取一个已无效命名密钥的数组,我会说有一个例外。如果你有一个语言数组,我认为最好的做法是把可翻译的短语也放在你的键中。