我遇到了一个问题,我可以从Codeigniter查询中获取一个对象,运行print_r($object)
并显示:
stdClass Object ( [client_id] => 4105 [name] => William Hilliard ...
但是,当我尝试打印$object->name
时,屏幕上没有任何内容。使用Codeigniter的result_array()
函数来检索结果修复了打印值的能力,但仍然没有解释为什么Object属性不会打印到屏幕上。即便如此,我想要一个对象,而不是一个数组。最后,我去了我正在运行的SQL:
SELECT
t.client_id as client_id
,CONCAT_WS(' ',t.first,t.last) as name
,t.foo as bar...
当我用“波浪”引用name
作为“名称”时,问题得到解决。这让我很好奇,所以我下载了BBEdit并查看了该行。在每个其他文本编辑器中,行末没有空格,但删除和重写行将解决问题。 BBEdit展示了不同的东西:
Δ Δ Δ Δ ,CONCAT_WS(' ',t.first,t.last)·as·name ¬
它清楚地显示了name
和¬
之间的空格。复制并粘贴此内容
“whitespace”导致文本编辑器和Web浏览器中没有任何粘贴。但是,删除该字符并将文件保存在BBEdit中将解决PHP中的问题。任何人都可以告诉我这个“幽灵空间”是什么角色,以及开发人员可能在他们的代码中最终得到这些垃圾的方式吗?