PHP Parse error: syntax error, unexpected ':', expecting ';' or '{'
PHP Parse error: syntax error, unexpected ':', expecting ';' or '{'
我正在尝试玩 php7。我已经安装了 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(''));
}
}
并且我使用 php 单元启动,不幸的是我有
PHP Parse error: syntax error, unexpected ':', expecting ';' or '{'
可能我没有正确安装 php7 但当我 php -v
时似乎没问题
PHP 7.0.0-dev (cli) (built: May 25 2015 16:34:33) (DEBUG) Copyright
(c) 1997-2015 The PHP Group Zend Engine v3.0.0-dev, Copyright (c)
1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
更新
问题不在 installation/configuration php7(我认为),因为当我 运行 从 cli 像这样:
<?php
$calc = new Kata\StringCalculator();
var_dump($calc->add(''));
输出 int(0)
并且没有错误。
所以问题可能出在 php 单元?
从错误中可以明显看出执行您的代码时出现问题。
PHP Parse error: syntax error, unexpected ':', expecting ';' or '{'
您的问题很可能来自 PHPUnit,因为您的 php 7 设置正确。如果 PHPUnit 无法理解你的代码,它会在 PHP 7 代码的第一位失败,在你的情况下使用 return type declaration
在这一行
public function add(string $parameters): int {
当您尝试断言时,它会在您的 php 单元测试中被触发。如果您评论您的断言,错误应该会消失。
我建议验证您正在使用的 PHPUnit 的版本,您应该使用版本 5 或更高版本。 (对于 php 7.0,最好是 6)
有关 PHP 单元版本的更多详细信息,请查看 this link.
这是因为 composer 版本与 php 版本不一致。
"laravel/framework": "^9.11" 适用于 php 8.1。升级到 php 8.1 后,未显示任何错误
我正在尝试玩 php7。我已经安装了 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(''));
}
}
并且我使用 php 单元启动,不幸的是我有
PHP Parse error: syntax error, unexpected ':', expecting ';' or '{'
可能我没有正确安装 php7 但当我 php -v
时似乎没问题PHP 7.0.0-dev (cli) (built: May 25 2015 16:34:33) (DEBUG) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
更新
问题不在 installation/configuration php7(我认为),因为当我 运行 从 cli 像这样:
<?php
$calc = new Kata\StringCalculator();
var_dump($calc->add(''));
输出 int(0)
并且没有错误。
所以问题可能出在 php 单元?
从错误中可以明显看出执行您的代码时出现问题。
PHP Parse error: syntax error, unexpected ':', expecting ';' or '{'
您的问题很可能来自 PHPUnit,因为您的 php 7 设置正确。如果 PHPUnit 无法理解你的代码,它会在 PHP 7 代码的第一位失败,在你的情况下使用 return type declaration 在这一行
public function add(string $parameters): int {
当您尝试断言时,它会在您的 php 单元测试中被触发。如果您评论您的断言,错误应该会消失。
我建议验证您正在使用的 PHPUnit 的版本,您应该使用版本 5 或更高版本。 (对于 php 7.0,最好是 6) 有关 PHP 单元版本的更多详细信息,请查看 this link.
这是因为 composer 版本与 php 版本不一致。
"laravel/framework": "^9.11" 适用于 php 8.1。升级到 php 8.1 后,未显示任何错误