我正在尝试玩 php7。我已经安装了https://github.com/rlerdorf/php7dev https://github.com/rlerdorf/php7dev并通过phpstorm连接。
我正在尝试使用这样的新功能:
<?php
namespace Kata;
class StringCalculator
{
public function add(string $parameters): int {
return 0;
}
}
然后我尝试像这样测试它:
<?php
namespace Kata;
class StringCalculatorTest extends \PHPUnit_Framework_TestCase
{
public function testAddEmptyString()
{
$calc = new StringCalculator();
$this->assertSame(0, $calc->add(''));
}
}
我用 phpunit 启动,不幸的是我有
PHP 解析错误:语法错误,意外的 ':',期望 ';'或者 '{'
可能我没有正确安装 php7 但当我 php -v 时似乎没问题
PHP 7.0.0-dev (cli)(构建时间:2015 年 5 月 25 日 16:34:33)(调试)版权所有
(c) 1997-2015 PHP Group Zend Engine v3.0.0-dev,版权所有 (c)
1998-2015 Zend 技术公司
使用 Zend OPcache v7.0.6-dev,版权所有 (c) 1999-2015,作者:Zend Technologies
UPDATE
问题不在于安装/配置 php7 (我认为),因为当我像这样从 cli 运行它时:
<?php
$calc = new Kata\StringCalculator();
var_dump($calc->add(''));
outputs int(0)
并且没有错误。
那么问题可能出在 phpunit 上?
从错误中可以清楚地看出执行代码时出现问题。
PHP Parse error: syntax error, unexpected ':', expecting ';' or '{'
您的情况的问题很可能来自 PHPUnit,因为您有正确的 php 7 设置。如果 PHPUnit 无法理解您的代码,它会在 PHP 7 代码的第一位中失败,在您的情况下使用返回类型声明 http://php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration在这一行
public function add(string $parameters): int {
当你尝试断言时,它会在你的 phpunit 测试中被触发。如果您评论您的断言,错误应该会消失。
我建议验证您正在使用的 PHPUnit 版本,您应该使用版本 5 或更高版本。 (对于 php 7.0 最好是 6)
有关 PHPunit 版本的更多详细信息,请查看这个链接 https://phpunit.de/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)