Default value for parameters with a class type hin

今天迷之報了個錯誤,本來在另一條開發機上好好的,結果換了一臺新的開發機就錯誤了,錯誤如下:

PHP Fatal error:  Default value for parameters with a class type hint can only be NULL in /data1/www/XXXX/weeklyDataStatisc.php on line 147

然後去看了一下代碼147行,是這麼寫的。

function createLineChart(string $chartTitle, array $labels, array $datas, string $topLeft = 'H6', string $bottomRight = 'P19', int $endRow = 41, $sheet_title = "工作表2")

然後結合錯誤信息和網上查了一下,大致理解了是PHP 類型約束的問題。php5可以顯示約束函數參數類型,但是僅限於array 等。PHP7才增加了INT STRING等類型限制。
但是我是PHP7 啊,然後我去掉了類型約束,但是還是不行,反而出現了其他亂七八糟的錯誤。搞得快哭了。

最後,經過各種折騰,突然發現 ,我執行的時候是以我的用戶執行的,沒有sudo。然後sudo執行就會失敗。然後我看了一下PHP版本,普通用戶下的php --version 是PHP7. sudo php --version 竟然是PHP5!!!!!!!

sudo crontab -e 裏用的也是PHP5 /usr/bin/php

啊啊啊啊啊啊。果斷換成了PHP7版本 /usr/local/bin/php

記錄一下吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章