Php 嵌套ifs的语法错误
我有以下代码,php-l myfile.php打印出以下内容:Php 嵌套ifs的语法错误,php,syntax-error,Php,Syntax Error,我有以下代码,php-l myfile.php打印出以下内容: PHP Parse error: syntax error, unexpected '{' in test.php on line 13 Parse error: syntax error, unexpected '{' in test.php on line 13 Errors parsing myfile.php 为了进行测试,我已将函数复制到自己的文件中,以确保错误确实存在于该函数中。我已经三次检查了代码(如果我错过了
PHP Parse error: syntax error, unexpected '{' in test.php on line 13
Parse error: syntax error, unexpected '{' in test.php on line 13
Errors parsing myfile.php
为了进行测试,我已将函数复制到自己的文件中,以确保错误确实存在于该函数中。我已经三次检查了代码(如果我错过了一些愚蠢的错误,请道歉)
代码:
好的,我想我终于找到了错误: 我用十六进制编辑器打开了文件,在这里发现了一个非ASCII字符。。。 删除字符并将其替换为0x20(空格)有助于。。。 似乎nano或其他人在写作时犯了错误。AD7six是对的
但这并不能解释为什么Shankar Damodaran也有同样的问题。问题中的代码没有语法错误。很可能这意味着键入一个无法打印的字符而不是空白。这真的很奇怪。。。只需删除
else
和{
,它对我有效。是的,最初它有一个语法错误。我无法复制你的结果。php-l
注意到没有语法错误。删除空格有帮助!我不明白为什么,但是…o.o@Tom Walters我在两个不同php版本的操作系统上出错,OS X v 5.5和Raspbian 5.4.4-14+deb7u8…对于这么多的ifs,换个位置会更好。
<?php
function getNewChannelValue($value, $bit, $flip, $alpha) {
$max = 255;
if ($alpha) {
$max = 127;
}
if ($flip) {
if ($bit && ($value % 2 == 0)) {
$value++;
} else if (!$bit && ($value % 2 != 0)) {
$value++;
}
} else { //This is line 13
if ($bit && ($value % 2 == 0)) {
$value--;
} else if (!$bit && ($value % 2 != 0)) {
$value--;
}
}
if ($value > $max && $bit) {
$value = $max;
}
if ($value > $max && !$bit) {
$value = $max - 1;
}
if ($value < 0 && $bit) {
$value = 1;
}
if ($value < 0 && !$bit) {
$value = 0;
}
return $value;
}
?>