Php Guzzle Error count():参数必须是在中实现可数的数组或对象

Php Guzzle Error count():参数必须是在中实现可数的数组或对象,php,google-api,google-analytics-api,google-api-php-client,Php,Google Api,Google Analytics Api,Google Api Php Client,下面是我的文章, 但最后,当我尝试使用示例代码(HelloAnalytics.php)时,它会在命令行中显示如下错误,并且无法获取数据 PHP警告:count():参数必须是在第67行的C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.PHP中实现可计数的数组或对象 警告:count():参数必须是在第67行的C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\

下面是我的文章,

但最后,当我尝试使用示例代码(HelloAnalytics.php)时,它会在命令行中显示如下错误,并且无法获取数据

PHP警告:count():参数必须是在第67行的C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.PHP中实现可计数的数组或对象

警告:count():参数必须是在第67行的C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php中实现可计数的数组或对象 PHP警告:count():参数必须是在第67行的C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.PHP中实现可计数的数组或对象

警告:count():参数必须是在第67行的C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php中实现可计数的数组或对象 PHP致命错误:未捕获的Google_服务_异常:{“错误”:{“错误”:[{“域”:“usageLimits”,“原因”:“accessNotConfigured”,“消息”:“未找到项目687417168367,无法用于API调用。如果它是最近创建的,请访问以启用Google Analytics API,然后重试。如果您最近启用了此API,请等待几分钟,等待操作传播到我们的系统并重试。”,“extendedHelp”:“}],“代码”:403,“消息”:”未找到项目687417168367,无法用于API调用。如果该项目是最近创建的,请访问以启用Google Analytics API,然后重试。如果您最近启用了此API,请等待几分钟,让操作传播到我们的系统,然后重试。“}在C:\xampp\htdocs\vendor\google\apiclient\s中,在C:\xampp\htdocs\vendor\google\apiclient\src\google\Http\REST.php的第118行

致命错误:未捕获的Google_服务_异常:{“错误”:{“错误”:[{“域”:“usageLimits”,“原因”:“accessNotConfigured”,“消息”:未找到项目687417168367,无法用于API调用。如果它是最近创建的,请通过访问启用Google Analytics API,然后重试。如果您最近启用了此API,请等待几分钟,等待操作传播到我们的系统并重试。“,“extendedHelp”:“}],“代码”:403,“消息”:未找到项目687417168367,无法用于API调用。如果该项目是最近创建的,请访问以启用Google Analytics API,然后重试。如果您最近启用了此API,请等待几分钟,让操作传播到我们的系统,然后重试。“}在C:\xampp\htdocs\vendor\google\apiclient\s中,在C:\xampp\htdocs\vendor\google\apiclient\src\google\Http\REST.php的第118行

有人能帮我吗? 谢谢这里所说的

请尝试升级您的Guzzle版本

问题在于PHP 7.2中count()的参数不能为NULL。当$this->handles等于NULL时,第一篇文章中的警告会显示出来。只需将CurlFactory.PHP中的第67行替换为以下内容:

如果($this->handles?计数($this->handles):0)>=$this->maxHandles){


我知道这是一篇旧文章,但我已经通过composer更新了
Guzzle

首先在你的作曲器中添加这个

 "require": {
    "guzzlehttp/guzzle": "~5.3.1"
}
然后写

composer update

在您的命令提示符中,有些人在升级到Mac OS Catalina时可能会遇到这个问题(在本地环境中)。这将我的php版本从7.1升级到7.3,因此我对CurlFactory(使用Guzzle的6.2.1版)也有同样的问题

这可以通过将Guzzle版本更新为6.3.0(最低版本)来解决。 如何执行此操作

"require": {
    "guzzlehttp/guzzle": "^6.3.0"
}
然后在终端中(在项目的根目录中):

或者,如果您无法更改您的口吻版本(出于某种原因……这是我的情况)

  • 您可以通过安装7.1来更改php版本(在我的示例中使用自制软件。如果您没有,可以在此处找到/安装:)
然后在终端类型中:

brew update
brew install php@7.1
在某些情况下,您必须使用以下命令链接到PHP7.1:

brew link php@7.1

最后,重新启动您的终端。

在我的情况下,问题并不严重,在尝试了上述解决方案后,我得出结论,我只需要删除错误,一切正常

if(version_compare(PHP_VERSION, '7.2.0', '>=')) {
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
}
此代码仅在localhost上需要,但生产服务器不会输出警告

if(version_compare(PHP_VERSION, '7.2.0', '>=')) {
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
}