Default value for parameters with a class type hint can only be NULL

今天定時任務crontab 腳本迷之報了個錯誤,原本這個腳本在舊的開發機上跑的好好的,結果換了一臺新的開發機就錯誤了,錯誤以下:php

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行,是這麼寫的。bash

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!!!!!!!ui

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

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

記錄一下吧。code

相關文章
相關標籤/搜索