学習ログ– category –
-
《PHP8上級試験対策》mime_content_type()が拡張子を無視する理由
はじめに PHPのファイル操作でたびたび登場する mime_content_type() 関数。一見すると「拡張子で判定しているのでは?」と思いがちですが、実際はファイルの中身(バイ... -
《PHP8上級試験対策》DateTimeImmutableの正しい使い方と注意点
はじめに PHP8の上級試験では、DateTime と DateTimeImmutable の違いを問う問題がよく出ます。DateTimeImmutable は名前の通り「変更できない日付時刻オブジェクト」で... -
《PHP8上級試験対策》strtotimeで英文日付をUnixタイムスタンプに変換する仕組みとタイムゾーン挙動
はじめに PHP8上級試験では、日付操作やタイムゾーンの理解が問われることがあります。特に strtotime() 関数は便利ですが、タイムゾーン付きの文字列を渡した場合の挙... -
《PHP8上級試験対策》DateTimeクラスの使い方まとめ
はじめに PHPで日付・時刻を扱うとき、DateTime クラスは欠かせない存在です。上級試験でも「現在日時の取得」や「フォーマット出力」の理解は必須。この記事では、Date... -
《PHP8上級試験対策》Copy on Write(コピーオンライト)の仕組みとメモリ管理
はじめに PHPの配列や文字列は、代入や関数の引数で渡すときにいきなりメモリをコピーするわけではありません。この仕組みは「Copy on Write(COW)」と呼ばれ、PHPのメ... -
《PHP8上級試験対策》memory_get_usage() と memory_get_peak_usage() の違いを理解する
はじめに PHPのメモリ関連関数には、実行中のメモリ使用量を把握するためのツールが用意されています。特に memory_get_usage() と memory_get_peak_usage() は、メモリ... -
《PHP8上級試験対策》xdebug_debug_zval()で見るリファレンスカウントとis_refの関係
はじめに PHPの変数は「値のコピー」ではなく、「値への参照」を通じて扱われる場面が多くあります。特に&演算子で参照を作成したとき、内部的にどのような構造にな... -
《PHP8上級試験対策》unserialize() のコンストラクタ・デストラクタ挙動を図解で理解
はじめに PHP8上級試験では、オブジェクトのシリアライズ・アンシリアライズに関する問題が頻出です。特に「コンストラクタは呼ばれる?デストラクタは呼ばれる?」とい... -
《PHP8上級試験対策》serialize() / unserialize()でオブジェクトを保存・復元してみよう
はじめに データを「一時的に保存したい」「通信で送受信したい」とき、オブジェクトや配列をそのまま扱うことはできません。そんなときに活躍するのが serialize() と ... -
《PHP8上級試験対策》__serialize()と__unserialize()の動作を理解しよう
はじめに オブジェクトをシリアライズ/アンシリアライズするとき、その「直列化」や「復元」に介入したいときがあります。 PHP8ではそのための新しいマジックメソッド_...