PHP解析错误:语法错误,意外':',期待';'要么 '{'

时间:2015-10-02 19:13:06

标签: php phpunit php-7

我正在尝试使用php7。我安装了https://github.com/rlerdorf/php7dev并通过phpstorm连接。 我正在尝试使用这样的新功能:

<?php
namespace Kata;

class StringCalculatorTest extends \PHPUnit_Framework_TestCase
{
    public function testAddEmptyString()
    {
        $calc = new StringCalculator();
        $this->assertSame(0, $calc->add(''));
    }
}

然后我尝试像这样测试:

<?php
    $calc = new Kata\StringCalculator();
    var_dump($calc->add(''));

我用phpunit启动,不幸的是我有

  

PHP Parse错误:语法错误,意外':',期待';'或'{'

可能我没有正确安装php7但是当我的php -v

时它似乎没问题
  

PHP 7.0.0-dev(cli)(建于2015年5月25日16:34:33)(DEBUG)版权所有   (c)1997-2015 PHP Group Zend Engine v3.0.0-dev,版权所有(c)   1998-2015 Zend Technologies       Zend Technologies的Zend OPcache v7.0.6-dev,Copyright(c)1999-2015,

更新

问题不在安装/配置php7(我想),因为当我从cli运行它时,这样:

int(0)

输出{{1}}并且没有错误。

所以问题可能在于phpunit吗?

1 个答案:

答案 0 :(得分:0)

从错误中可以明显看出,执行您的代码有问题。

PHP Parse error: syntax error, unexpected ':', expecting ';' or '{'

由于您的PHP 7安装正确,因此您的问题很可能来自PHPUnit。如果PHPUnit无法理解您的代码,它将在PHP 7代码的第一部分失败,在您的情况下,该代码使用return type declaration 在这一行

public function add(string $parameters): int {

,当您尝试断言时,它将在您的phpunit测试中触发。如果您对自己的主张发表评论,该错误应会消失。

我建议验证您使用的PHPUnit版本,您应该使用版本5或更高版本。 (对于php 7.0最好为6) 有关PHPunit版本的更多详细信息,请检出this link