近日中にリリース予定のPHP8.2の対応を行っています。

今回のバージョンで対応した箇所は主に二点で、

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /path/to/dir/sample.php on line n

Deprecated: Creation of dynamic property SampleClass::$hoge is deprecated in /path/to/dir/sample.php on line n

でした。

※ファイルのパス、クラス名とプロパティ名は仮


一点目は

$hoge = "hoge";
echo "sample_${hoge}";

で、文字列の間に${var}のように変数を指定することがいずれ非推奨になるのでエラーになります。


"sample_".$hoge;

にように文字列を分割するとエラーは解消されます。


二点目は


class SampleClass {
	
	function exe(){
		$this->hoge = "hoge";
	}
}

$obj = new SampleClass();
$obj->exe();

上記のようなコードがあったとして、$this->hogeの$hogeがプロパティとして登録されていないことでエラーになります。


class SampleClass {

	private $hoge;
	
	function exe(){
		$this->hoge = "hoge";
	}
}

$obj = new SampleClass();
$obj->exe();

上記のようにプロパティを登録するとエラーが解消されます。

PHP8.1のdate()やstrlen()の時の厳格な型指定といった修正がなかったので少ない修正でなんとかなりました。


PHP8.1に対応したバージョンのダウンロードは下記から行うことができます。

https://saitodev.co/soycms/


今回の修正はPHP7系でも普通に使用出来るものですので、不安であれば現在のPHPのバージョンでご利用下さい。