PHP8にアップデート後、Deprecated: Required parameter … must come before optional parameterが表示された場合の対処方法をご紹介いたします。

Deprecated: Required parameter … must come before optional parameterとは?

Deprecatedエラー(警告)は現在はエラーにならないが、将来さらにPHPのバージョンを上げたときにエラーになる可能性がある古い記載方法を開発者に知らせるものです。

Required parameter … must come before optional parameterとは直訳すると必須のパラメータは必須ではないパラメータの前に記載する必要があるという意味になります。

例えば下記のようなPHPの関数があったとします。

function dosomething($name,$address=""){
    echo $name.",".$address;
}

この関数の$addressは初期値が指定されているので非必須のパラメータです。

PHP8からはこの関数で下記のように非必須のパラメータを先に指定するとDeprecated: Required parameter … must come before optional parameter警告が出ます。

function dosomething($address="",$name){
    echo $name.",".$address;
}

修正するには前の方に指定されている非必須のパラメータを必須パラメータにします

function dosomething($address,$name){
    echo $name.",".$address;
}

または後の方に非必須のパラメータが並ぶようにします。

function dosomething($name,$address=""){
    echo $name.",".$address;
}

※ただし変数の順番を変えてしまいますと呼び出し元と変数の意味合いが変わってきます。上記のように変数を並び替えた場合は呼び出し元も修正が必要です。

dosomething("住所","名前"); → 変数の並びも合わせます dosomething("名前","住所");

ご参考になりましたら幸いです。

wpドクターでDeprecated:警告の修正を経験豊かな技術者が代行いたします。お気軽にご相談お送りください

WordPress ワードプレスのPHP8.3への安全なアップデートの代行、エラー修正の代行のご依頼・ご相談はWPドクターまでお気軽にお送りください