---
title: PHP 8.6に備えよう！非推奨になる機能たち
tags: 
author: [takaram](https://docswell.com/user/takaram)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/87DKPDD2JG.jpg?width=480
description: 関西PHP勉強会 2026/08/20 の発表スライド
published: August 20, 26
canonical: https://docswell.com/s/takaram/KVJ83J-php-86-deprecations
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/87DKPDD2JG.jpg)

PHP 8.6 に備えよう！
非推奨になる機能たち
関西PHP勉強会
takaram (@takaram71)


# Page. 2

![Page Image](https://bcdn.docswell.com/page/VJPKNXXLE8.jpg)

自己紹介
● 荒巻拓哉
● X: @takaram71
GitHub: @takaram
● バックエンドエンジニア @株式会社
ラクス
○ 問い合わせ自動応対システムの
開発


# Page. 3

![Page Image](https://bcdn.docswell.com/page/2EVVKLL6EQ.jpg)

みなさん


# Page. 4

![Page Image](https://bcdn.docswell.com/page/57GLQXX2EL.jpg)

PHPのバージョンアップ
してますか？


# Page. 5

![Page Image](https://bcdn.docswell.com/page/4EQYK889JP.jpg)

PHPは毎年11月下旬ごろリリース
https://www.php.net/supported-versions.php


# Page. 6

![Page Image](https://bcdn.docswell.com/page/KJ4WP29R71.jpg)

PHPバージョンアップの強い味方


# Page. 7

![Page Image](https://bcdn.docswell.com/page/LE1Y9MKV7G.jpg)

https://www.php.net/manual/ja/migration85.php


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GEWGQ3D3J2.jpg)

機能の非推奨化
● バージョン2桁目が上がるごとに、いくつかの機能が非推奨
になる
● バージョン1桁目が上がるときに、非推奨機能が削除される
● RFCでの提案→投票で決まる


# Page. 9

![Page Image](https://bcdn.docswell.com/page/47ZLWVGGJ3.jpg)

PHP 8.6ではどんな機能が
非推奨になる？


# Page. 10

![Page Image](https://bcdn.docswell.com/page/YJ6WG5YQJV.jpg)

RFC: Deprecations for PHP 8.6
https://wiki.php.net/rfc/deprecations_php_8_6
● 35項目を個別に投票
● 31項目が可決
● 原則、PHP 8.6で非推奨 → PHP 9で削除予定


# Page. 11

![Page Image](https://bcdn.docswell.com/page/GJ5MVYG2J4.jpg)

大きく分けて4パターン
●
●
●
●
将来の構文のための名前予約
暗黙・矛盾した挙動の廃止
重複・不要なAPIの整理
古い・不安定な機能の整理


# Page. 12

![Page Image](https://bcdn.docswell.com/page/LE3WD5R1E5.jpg)

将来の構文のための名前予約
● let, namespace, readonly, is, _
● クラス、インターフェース、trait、enum、関数、定数の名前
としての利用
○ 関数名 _ だけは対象外
○ https://www.php.net/_


# Page. 13

![Page Image](https://bcdn.docswell.com/page/8EDKPDYK7G.jpg)

オブジェクトを配列として渡す
● 一部の関数は、連想配列の代わりにオブジェクトを受け取れ
ていた
○ array_walk() / array_walk_recursive()
○ mb_convert_variables()
○ deflate_init() / inflate_init()、各種圧縮フィル
ター
○ 公開プロパティを暗黙に配列として扱う
● 一部のケースでおかしな挙動をする
● そもそも誰も使ってない


# Page. 14

![Page Image](https://bcdn.docswell.com/page/V7PKNX63J8.jpg)

例外やバグを隠す呼び出し
● finally ブロックからの return
● is_a() / is_subclass_of() の矛盾した引数
○ 文字列を禁止しているのに文字列を渡す


# Page. 15

![Page Image](https://bcdn.docswell.com/page/2JVVKL3NJQ.jpg)

重複・不要なAPIを整理
● 型名の古い別名
○ is_double()、is_integer()、is_long()、
doubleval()
● define() の第3引数 $case_insensitive
● spl_classes()、spl_object_hash()
● ArrayIteratorがArrayObjectから継承したメソッド


# Page. 16

![Page Image](https://bcdn.docswell.com/page/5EGLQX35JL.jpg)

専門的・古いAPI
● strcoll() と SORT_LOCALE_STRING
○ Collatorへ
●
●
●
●
metaphone()
mysqli::stmt_init() / mysqli_stmt_init()
mysqli_get_charset()
不完全なセッション保存ハンドラー


# Page. 17

![Page Image](https://bcdn.docswell.com/page/4JQYK85L7P.jpg)

SplFileObjectのCSVメソッド
● 以下の4メソッドが非推奨に
○
○
○
○
SplFileObject::fgetcsv()
SplFileObject::fputcsv()
SplFileObject::setCsvControl()
SplFileObject::getCsvControl()
● 関数のfgetcsv(), fputcsv()は残る


# Page. 18

![Page Image](https://bcdn.docswell.com/page/K74WP295E1.jpg)

まとめ
● 毎バージョンいろんな機能が非推奨になっている
● 新たにこれらの機能を使わないように


# Page. 19

![Page Image](https://bcdn.docswell.com/page/LJ1Y9MK2EG.jpg)

補足スライド


# Page. 20

![Page Image](https://bcdn.docswell.com/page/GJWGQ3D272.jpg)

否決された項目
●
●
●
●
list() 構文
in / out / inout を識別子に使うこと
_() 関数名（gettext()の別名）
dechunk ストリームフィルター


# Page. 21

![Page Image](https://bcdn.docswell.com/page/4EZLWVG473.jpg)

非推奨になるものをCIで検知
● PHPStanなどに一部の非推奨の書き方を検知するルール
がある
○ PHP 8.5から非推奨の(double)が検知される例
○ phpstan.neon のphpVersionに依存するので注意


