尝试将常量和字符串放在一起时出现语法错误

时间:2016-09-07 11:58:14

标签: php syntax

通常我不会在这里发布语法错误,但这种情况对我来说有点怀疑。我试图用一个字符串组合一个常量。我在localhost上运行正常,但是当我在我的网络服务器上推送我的项目时,它告诉我:

Parse error: syntax error, unexpected '.', expecting ',' or ';' in xxx on line xxx

代码:

define("ROOT", str_replace("index.php", "", $_SERVER["SCRIPT_FILENAME"]));

$somePath = ROOT . "some/path"; //Synax error in this line

这与不同的PHP版本有关吗? (网络服务器上的5.5,7.0 localhost)

更新

代码中的一些更新:

class SomeClass {

    private $somePath = ROOT . "some/path"; //Synax error in this line

    ...
}

1 个答案:

答案 0 :(得分:0)

定义内容时,不能使用str_replace()或任何函数。尝试:

define("ROOT", $_SERVER["SCRIPT_FILENAME"]);
$somePath = str_replace("index.php", "", ROOT) . "some/path";

请参阅PHP Manual

  

在PHP 5中,value必须是标量值(整数,浮点数,字符串,布尔值或NULL)。在PHP 7中,也接受数组值。