PHP数组元素以“<”开头奇怪的行为

时间:2014-01-09 07:19:34

标签: php arrays

我试图为我的应用程序创建一些语法,使用$ operator。$ columnField作为SELECT WHERE子句的数组元素 - 比如选择少于41的所有id就好了

$parameters['where'] = array('<id'),
$parameters['fields'] = array(':id' => '41')

然后我会解析所有['where'] s以便从字段本身确定运算符。这里的主要想法不是如果我的方式是一个好方法,因为我可以用很多不同的方法来做到这一点。我感兴趣的是它似乎'&lt;'如果在string类型的数组元素的开头,则扮演一些特定的角色。

我注意到有一些错误,所以我开始测试了。现在任何人都可以告诉我为什么

print_r(array('alfa', '<beta', 'gamma'));

回波

Array ( 
      [0] => alfa 
      [1] => gamma 
)

提前致谢。

稍后编辑:如果'&lt;'字符后跟一个空格,同样不再适用。它只是输出

Array ( 
      [0] => alfa 
      [1] => < beta 
      [2] => gamma 
) 

1 个答案:

答案 0 :(得分:4)

它实际上有效.. < 标记由浏览器代表,它将它隐藏起来。

单击 Ctrl + U 以查看来源。你会看到这个......

Array
(
    [0] => alfa
    [1] => <beta
    [2] => gamma
)

好吧,如果你想把它用于显示目的..这样做..

<?php
print_r(array_map('htmlentities',array('alfa', '<beta', 'gamma')));