PHPカンファレンス新潟2025で型について語ってきた

はじめに

こんにちは。プラットフォームサービスグループの村田です。普段はメールを配信するシステムなど社内で共通に利用されるプラットフォームの運用、開発を行なっています。

2025年5月31日に開催された PHPカンファレンス新潟2025 で「新潟で型について語ってみた」というテーマで初めてカンファレンスの登壇をさせていただきました。 今回は登壇内容のポイントとカンファレンスの雰囲気などを紹介できればと思います。

登壇内容

新潟で型について語ってみる

新”潟”ということで、PHPになぜ型システムが必要なのかから、PHPerが頭を悩ます型の相互変換までを網羅的に発表しました。

そもそも型って?

型システムは、データの種類や性質を指し示し、メモリ管理の効率化や型安全性の確保に役立ちます。 そして、可読性の向上やコードの補完機能が上がることで、開発者がコードを書く際の効率が上がり、ミスを減らすことができます。

そもそも型って?

PHPは変数や関数の引数、戻り値の型が実行時まで決定されない「動的型付け言語」になっています。 また、型の制約が緩く、異なる型同士の暗黙的な変換が比較的自由に行われる「弱い型付け」の言語でもあります。 しかし、PHP7以降で”declare(strict_types=1);”ストリクトモードが導入されたことで、PHPは動的型づけ言語、かつ、強い型付け言語として振る舞うことができるようになりました。

論理のコンテクスト

コンテキスト(文脈)によって、PHPが値を別の型に自動変換しようとします。自動変換が行われるコンテクストは以下の通りですが、特につまづきやすい、論理のコンテキストと比較のコンテキストについて本記事で取り上げます。

  • 数値のコンテキスト
  • 文字列のコンテキスト
  • 論理のコンテキスト
  • 整数と文字列のコンテキスト
  • 企画のコンテキスト
  • 関数のコンテキスト


論理のコンテキストは制御構文(ifなど)、三項演算子、論理演算子(&&など)を使った場合になります。
特に気をつけるべきはstring型の“0”になります。これは他の多くの言語はtrueとして返しますが、PHPではfalseと返すため、他言語を知っている人からすると勘違いしてしまう部分かと思います。

比較のコンテクスト

比較のコンテキストでは上記の表のように型を変換して比較を行います。

比較のコンテクスト

比較のコンテクスト
文字列と数値を比較する場合、PHP8未満の場合とPHP8以降の場合で比較の仕方が違う点には注意が必要になります。

qqq
また、業務でもよく利用される in_array() ですが、その第三引数(strictフラグ)がfalseや未指定の場合は型の変換が行われてしまい、意図しない挙動になってしまうため非常に注意が必要です。

惨劇を回避するには
比較のコンテキストでは上記を心掛けることで、意図しない挙動を回避することができると思います。他にも、PHPでの基本的な型の紹介や型の相互変換では具体的な例を紹介しました。

登壇してみて

良かった点

  • 思った以上に見に来てくれた人が居てビックリした
  • 自分のボケや内容に対してのレスポンスが良かった
  • 単純に発表が上手くなった

悪かった点

  • 細かい部分で調査不足の部分があった
  • 型の相互変換の例示では、もっとわかりやすくできた
  • 最後だったのもあり、緊張や最終チェックなどで他のトークなどを完全に楽しめなかった

ちょけたり、ボケに対して笑ってもらえたり、真面目な所では関心するような声が聞こえてきたりして、嬉しいという感情とともにPHPerはあったかいなと心から思いました。

カンファレンスの感想

「繋がる楽しさを、新潟で。」のキャッチコピーの通り、つながりを持てるようなイベントがいくつかありました。

会場の開志専門職大学さん

自己紹介コンテンツ

朝イチの企画になります。100人程度の参加者の方が居て、その中で5人程度のグループで自己紹介を行いました。 そもそもPHPerではない方がいらっしゃったり、最初から色々な刺激を受けました。

シャッフルランチ

ランダムで集まった5人程度のチームでお昼を食べに行く企画になります。 通常の業務では全く話さない学生や、強々エンジニアの方と交流ができて、エネルギーをたくさんもらいました。

シャッフルランチでは、とんかつ屋さんに行きました。キャベツとご飯のおかわりが無料だったのでご飯2杯おかわりしました。新潟のお米は美味しいです。

スポンサーブース

スポンサーブースに居られたディレクター職の方とお話させていただき、どこの会社も開発とディレクターとのギャップは存在するし、埋めるようにお互いが歩みよっているということも改めてわかりました。私も初心に帰って良いプロダクトを作成したいと思います。

甘酒

スポンサーブースには甘酒がおいてありました。久しぶりに甘酒を飲みましたが、濃厚で美味しかったです。

懇親会

とにかく美味しかったです。日本酒やタレカツ、お刺身など新潟の「食」を満喫できたと思います。 ただ、食べただけではなく、生成AIとの関わり方について話している中で、あまり生成AIを活用できていない自分に気づき、積極的にキャッチアップしていこうという気持ちになることができました。 他にも初めて見た言語など真面目な話だけではなく、エンジニアならではの砕けた話もできて面白かったです。

日本酒の飲み比べ
日本酒の飲み比べがありました。すごく飲みやすかったのを覚えています。

さいごに

懇親会の場やひとことフィードバックをしていただいた方、本当にありがとうございました。「チームにも広めてみます!」「ちょうど同じようなバグがありました!」「わかりやすかったです!」など、たくさんの声が聞けて嬉しく思うと同時に、少しはPHP界隈に貢献できたなと思えました。 この記事を読んで、少しでもカンファレンスに興味を持ってもらえたら嬉しいです。

本当に最後になりますが、このような機会を作っていただいたスタッフの皆さんありがとうございました。

村田

常に用具沼にハマっているエンジニアです。主にバックエンドやプラットフォームを担当しています。AI駆動開発はじめました。。