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

相关文章
相关标签/搜索