1. ホーム
  2. php

オブジェクトコンテキストでないときに$thisを使用した場合のエラーメッセージ

2022-02-19 15:04:25

このエラーメッセージの原因は、$thisがこのクラスのメソッドを呼び出すための静的メソッドで使用されており、phpではselfを使用していることです。

    public static function editPlaceSelect($places=[], $city_id=-1){
        if(is_array($places) && count($places)>0){
            foreach ($places as $place){
                $this->areaPlace($city_id, $place['area_id'], $place['address']);
            }
        }else{
            echo '<li>';
            echo '<select name="row_area_id" class="w-200 row_area_id">';
            echo '<option value="">-not open yet-</option>';
            echo '</select>';
            echo '<input type="text" name="row_area_address" class="w-300">';
            echo '</li>';
        }
    }
    
    public static function areaPlace($city_id, $area_id, $address){
        echo '<li>';
        echo '<select name="row_area_id" class="w-200 row_area_id">';
         $this->areaSelect($city_id, $area_id);
        echo '</select>';
        echo '<input type="text" name="row_area_address" class="w-300" value="'. $address.'">';
        echo '</li>';
    }








赤で示したコードは、次のようになります。 :

<スパン <スパン
self::areaPlace($city_id, $place['area_id'], $place['address']).

self::areaSelect($city_id, $area_id);