【问题标题】:Unable to use a public typed property in php 7.4 Laravel 7无法在 php 7.4 Laravel 7 中使用公共类型属性
【发布时间】:2020-07-27 19:19:35
【问题描述】:

当我在 Apache Web 服务器上部署 Laravel 应用程序时,我在第 17 行 (public int $invite_id;) 收到以下错误。

"语法错误,意外的 'Int' (T_STRING),期待函数 (T_FUNCTION) 或 const (T_CONST)"

这是错误来自的文件:(UPDATED Int TO int)

namespace App\Events\Invite;

use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class Created
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public int $invite_id;

    /**
     * Create a new event instance.
     *
     * @param  int  $invite_id
     */
    public function __construct(int $invite_id)
    {
        $this->invite_id = $invite_id;
    }
}

在本地,一切正常。当我删除 Int 时,部署中的一切都正常。为什么不能指定公共变量的类型?

更新 在 composer.json 里面:

"require": {
        "php": "^7.4",
        "fideloper/proxy": "^4.2",
        "fruitcake/laravel-cors": "^1.0",
        "guzzlehttp/guzzle": "^6.3",
        "laravel/framework": "^7.0",
        "laravel/tinker": "^2.0"
    },

php -v 的输出:

PHP 7.4.4 (cli)(构建时间:2020 年 3 月 20 日 13:47:45)(NTS) 版权所有 (c) PHP Group Zend Engine v3.4.0, 版权所有 (c) Zend Technologies 与 Zend OPcache v7.4.4, 版权所有 (c),由 Zend Technologies 提供

【问题讨论】:

  • Int 应该是小写的:int。你确定你的服务器运行的是 php 7.4?
  • 当我使用int 我得到这个错误:syntax error, unexpected 'int' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) php -v 的输出:PHP 7.4.4 (cli) (built: Mar 20 2020 13:47:45) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.4, Copyright (c), by Zend Technologies
  • Apache 使用的 PHP 版本很可能与您在命令行中使用的版本不同。

标签: variables visibility declaration laravel-7 php-7.4


【解决方案1】:

Apache 确实使用了 php7.2 模块。

我改成了:

sudo a2dismod php7.2 && sudo a2enmod php7.4

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2016-09-12
    相关资源
    最近更新 更多