【问题标题】:parse_str(): Calling parse_str() without the result argument is deprecated in jwage/purlparse_str():在 jwage/purl 中不推荐调用不带结果参数的 parse_str()
【发布时间】:2018-10-08 05:47:50
【问题描述】:
public function postIndex(){

$url = new Url('https://www.dropbox.com/1/oauth2/authorize');

$url->query->setData([
    'response_type'=>'code',
    'client_id'=> env('DROPBOX_APP_KEY'),
    'redirect_uri'=> env('DROPBOX_REDIRECT_URI')
]);

purl类中定义的parse_str只带一个参数

protected function doInitialize()
{
    parse_str($this->query);

    $this->data = get_defined_vars();
}

我当前的php版本是7.1.17.它需要第二个'result'参数,我应该如何传递第二个必需的参数来摆脱这个错误

提前致谢。

【问题讨论】:

  • 不就是parse_str($this->query, $result); $this->data = $result;这么简单吗?
  • “在 purl 类中定义的 parse_str 只接受一个参数” - 您将函数定义与此处的简单函数调用混淆了 - 您在 doInitialize 中所拥有的是后者。
  • 这个简单的任务似乎太难了。谢谢,@CD001

标签: php laravel


【解决方案1】:

According to the documentationparse_str 直到 7.2 才开始发出弃用警告,但无论如何,转移到两个参数的用法是有意义的。

谢天谢地,该代码示例非常简单,可以轻松更新如下:

protected function doInitialize()
{
    parse_str($this->query, $this->data);
}

jwage/purl 库已经 had basically this exact fix applied,但从那时起它似乎没有被重新标记,所以如果你通过 Composer 将其拉入,则需要手动 require the master branch

【讨论】:

  • 感谢 iainn,它就像一个魅力,我上错课了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 2019-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多