为什么这段代码有错误(注意:使用未定义的常量 - 假设''在第5行)
<?
$arr1 = array(
">",
"<",
);
foreach ($arr1 as $value) {
echo $value;
}
答案 0 :(得分:5)
这不是错误。您在代码中的特定行中有“不可打印的字符”,这就是您收到通知的原因。看图像,vi永远不会说谎! :P
删除你的代码并从头开始重写(没有复制/粘贴),它会起作用
答案 1 :(得分:4)
“在最后一个定义的数组条目之后有一个尾随逗号,虽然不常见,但却是一个有效的语法。”
<?php
$my_array = array('foo', 'bar', 'bat',);
?>
但是,根据您使用的PHP版本,它可能无效。最好删除尾随逗号,如果数组是静态的并且可以手动更改,而不是eval()
和其他代码生成的那些。
所以,你的代码是:
<?
$arr1 = array(
">",
"<" // Removing the trailing comma.
);
foreach ($arr1 as $value) {
echo $value;
}
但令我印象深刻的是,您使用的PHP版本是什么? Coz,所有不错的版本(PHP 5,6)都可以容忍一个尾随逗号。
此外,您必须在代码中检查 UTF-8 BOM 字符。我通常使用CuteFTP的编辑器来检查它们,甚至Hex编辑器也能很好地完成工作。当我复制你的代码并粘贴它时,我在这里看到了两个字符,请看截图:
这就是导致问题的原因。删除它们,你的代码很好。
答案 2 :(得分:0)
根据您的PHP版本,您的代码有效。不幸的是,你的版本不支持尾随逗号,所以你只需要删除它:
<?
$arr1 = array(
">",
"<"
);
foreach ($arr1 as $value) {
echo $value;
}
答案 3 :(得分:0)
错误是在数组中的最后一个逗号后面有两个不可见的字符(称为zero width joiner字符,十六进制E2 80 8D
)。
将示例中的代码复制并粘贴到文本编辑器中,将光标放在最后一个逗号前面,然后按几次左箭头键。光标应该静止不动。
我不太确定为什么会这样,但修复它应该就像删除它们一样简单:
$arr1 = array('>', '<');
答案 4 :(得分:-1)
我认为错误是您的数组中的逗号。试试这个:
<?
$arr1 = array(
">",
"<"
);
foreach ($arr1 as $value) {
echo $value;
}
答案 5 :(得分:-1)
@Pushpesh我认为在数组末尾使用没有问题 看看这个http://codepad.org/oUj8PwY2