Php 嵌套ifs的语法错误

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-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
为了进行测试,我已将函数复制到自己的文件中,以确保错误确实存在于该函数中。我已经三次检查了代码(如果我错过了一些愚蠢的错误,请道歉)

代码:


好的,我想我终于找到了错误: 我用十六进制编辑器打开了文件,在这里发现了一个非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;
}
?>