php8.0 parse_strでエラー「Uncaught ArgumentCountError: parse_str() expects exactly 2 arguments, 1 given in」が発生する

php8.0  parse_strでエラー「Uncaught ArgumentCountError: parse_str() expects exactly 2 arguments, 1 given in」が発生する

phpで、parse_strでエラー「Uncaught ArgumentCountError: parse_str() expects exactly 2 arguments, 1 given in」が発生する原因と対象法を記述してます。

環境

  • OS  CentOS Stream release 8
  • php 8.0.0
  • nginx 1.14.1

エラー内容

以下のコードを実行時に発生。

<?php

$str = "name=mebee&id=100";

parse_str($str);

echo $name . PHP_EOL;
echo $id . PHP_EOL;

エラー全文

PHP Fatal error:  Uncaught ArgumentCountError: parse_str() expects exactly 2 arguments, 1 given in

原因

parse_strは、php8では、第二引数は必須なため

対処法

引数を指定すれば、解決します。

<?php

$str = "name=mebee&id=100";

parse_str($str,$arr);

echo $arr["name"] . PHP_EOL;
// mebee
echo $arr["id"] . PHP_EOL;
// 100