单行注释阻止函数运行,多行注释不会引起问题,原因是什么


Single-line comments preventing functions from running, multi-line comments do not cause issue, why?

一旦我尝试添加单行注释(例如//comment),它就会阻止注释后面的任何函数运行。

昨天,在同一台服务器上有相同的代码,这不是问题,只要我删除注释,代码就会完美运行。

如果我使用多行注释(例如/*comment*/),代码也可以完美运行。

我想问的是,是否有人知道为什么会发生这种情况,以及我是否可以做些什么来阻止单行注释影响我的代码?

是否有任何设置会对此产生影响?

以前有人遇到过这个问题吗?

示例:

<?php
    session_start();
    require_once('includes.php');
    page_header('Task List');
    page_navigation('tasklist.php', $dbh);
    echo 'Success -1';
    /* Comment */
    $stmt = $dbh->prepare("SELECT * FROM task WHERE user_id = ? ORDER BY priority           ASC");
    echo 'Success 0';
    // If the user is admin use the chosen client_id
    if($_SESSION['user']['user_id'] === '1'){
        $stmt->execute(array($_SESSION['client_id']));
        echo 'Success 1';
    }else{
        // Otherwise use the user's user_id
        $stmt->execute(array($_SESSION['user']['user_id']));
        echo 'Success 2';
    }?>

Success-1和Success0都得到了响应,但单行//注释之后的任何内容都不会运行。如果我去掉评论,它就会运行,成功1也会得到响应。

我不是php程序员,但在十六进制编辑器中检查您的换行符编码,可能是您的解释器接受'r'n换行符,但您的脚本只有'n或类似的内容。

//将对整行进行注释,因此,无论您在该行中添加了什么,都将成为注释,但/**/将只考虑/**/下的内容。因此,即使您在*/之后添加了任何内容,也不会被视为注释。

请参阅此链接