PHPバージョンごとに文法構造が結構変わっているので注意が必要です。
サポート期間など
PHPバージョン別セキュリティサポート期間
バージョン | 初回リリース日 | 最終リリースバージョン | 最終リリース日 | サポート終了日 |
---|---|---|---|---|
8.2 | 2022/12/08 | 2025/12/08 | ||
8.1 | 2021/11/25 | 2024/11/25 | ||
8.0 | 2020/11/26 | 2023/11/26 | ||
7.4 | 2019/11/28 | 7.4.33 | 2022/11/03 | 2022/11/28 |
7.3 | 2018/12/06 | 7.3.33 | 2021/11/18 | 2021/12/06 |
7.2 | 2017/11/30 | 7.2.34 | 2020/10/01 | 2020/11/30 |
7.1 | 2016/12/01 | 7.1.33 | 2019/10/24 | 2019/12/01 |
7.0 | 2015/12/03 | 7.0.33 | 2018/12/06 | 2018/12/03 |
5.6 | 2014/08/28 | 5.6.40 | 2019/01/10 | 2018/12/31 |
WordPressと対応PHPバージョン
バージョン | 動作環境(PHPバージョン) | 推奨バージョン |
---|---|---|
6.4 | 8.1 – 8.2 | |
6.3 | 7.0 – 8.2 | 7.4以上 |
5.9 – 6.2 | 5.6.2 – 8.2 | 7.4以上 |
5.7 – 5.8 | 5.6.2 – 8.0 | 7.4以上 |
5.6 | 5.6.2 – 8.0 | 7.4以上 |
5.5 | 5.6.2 – 7.4 | 7.4以上 |
WordPressテーマ別
テーマ | テーマバージョン | 対応環境 |
---|---|---|
Swell | 2.8 | WordPress6.4 |
JIN | 2.750 | WordPress6.2 |
Sango | 3.7 | WordPress6.3 |
2023年10月現在、Swellの場合PHP8.1に上げても動くようです。
目次
PHP7
HTMLタグエスケープ
以下はPHP8+MySQL入門ノート(ソーテック社/大重美幸著)が元ネタなのですがChatGPT4のAdvanced Data Analysisに書いてもらったソースコードになります。
function es($data, $charset = 'UTF-8') {
if (is_array($data)) {
return array_map('es', $data);
} else {
return htmlspecialchars($data, ENT_QUOTES, $charset);
}
}
2023年11月現在では多くのWordpressテーマではPHP8ではまだ動かないことが多いのでこちらの方がまだ役立つかも知れません。
WordPressサブテーマのfunctions.phpからそれ以下にlibディレクトリを作り、その下にutil.phpを置くような場合はutil.phpには最初の行に<?phpをつけ、functions.phpに以下を追記します。
require_once(get_stylesheet_directory() . '/lib/util.php');
PHP8
HTMLタグエスケープ
以下はPHP8+MySQL入門ノート(ソーテック社/大重美幸著)が元ネタなのですがChatGPT4のAdvanced Data Analysisに書いてもらったソースコードになります。
function es(array|string|null $data, string $charset = 'UTF-8') {
if ($data === null) {
// nullの場合の処理をここに記述
return null; // または適切なデフォルト値を返す
} elseif (is_array($data)) {
return array_map(__METHOD__, $data);
} else {
return htmlspecialchars($data, ENT_QUOTES, $charset);
}
}
PHP 8.1では、関数の引数の型指定が厳格になりデータがない場合の処理を別に行わないとエラーになってしまうようです。上記は実際に運用させてみて動作確認済みのものになります。