PHP

[PHP]__set_state()とは?var_export()から生成されたコードでオブジェクトを復元する方法を徹底解説

はじめに以前の記事で、変数をPHPコードとして評価可能な文字列に変換する var_export() 関数を解説した際、オブジェクトを出力すると \ClassName::__set_state(array(...)) という見慣れない形式にな...
PHP

[PHP]__invoke()とは?オブジェクトを関数のように呼び出す方法を徹底解説

はじめに前回の記事では、オブジェクトを文字列として扱う __toString() を解説しました。今回取り上げる __invoke() は、それとよく似た発想で、オブジェクトを関数のように「呼び出し可能(callable)」にするマジックメ...
PHP

[PHP]__toString()とは?オブジェクトを文字列として扱う方法を徹底解説

はじめに前回までの記事で、シリアライズに関わるマジックメソッド(__sleep()、__wakeup()、__serialize()、__unserialize())を解説してきました。今回取り上げる __toString() は、オブジェ...
PHP

[PHP]__wakeup()とは?復元後のオブジェクトを初期化する旧来の仕組みを徹底解説

はじめに前回の記事では、シリアライズ対象のプロパティ名を指定する古い仕組み __sleep() を解説しました。今回取り上げる __wakeup() は、その対となる、unserialize() によってオブジェクトが復元された直後に呼び出...
PHP

[PHP]__sleep()とは?旧来のシリアライズ対象プロパティ指定の仕組みを徹底解説

はじめにこれまでの記事で、PHP 7.4以降の洗練されたシリアライズ制御の仕組みである __serialize() と __unserialize() を解説してきました。今回取り上げる __sleep() は、それらが登場する以前から存在...
PHP

[PHP]__unserialize()とは?シリアライズされたデータからオブジェクトを復元する方法を徹底解説

はじめに前回の記事では、serialize() によるシリアライズ内容を自由に制御する __serialize() を解説しました。今回取り上げる __unserialize() は、その対となる、unserialize() によってオブジ...
PHP

[PHP]__serialize()とは?オブジェクトのシリアライズ内容を自在に制御する方法を徹底解説

はじめにこれまでの記事で、プロパティオーバーロードに関わる4つのマジックメソッド(__get()、__set()、__isset()、__unset())を解説してきました。今回取り上げる __serialize() は少し毛色が異なり、P...
PHP

[PHP]__unset()とは?アクセスできないプロパティの削除を動的に処理する方法を徹底解説

はじめにこれまでの記事で、プロパティオーバーロードに関わる3つのマジックメソッド、__get()(読み取り)、__set()(書き込み)、__isset()(存在確認)を解説してきました。今回取り上げる __unset() は、この一連のグ...
PHP

[PHP]__isset()とは?アクセスできないプロパティの存在確認を動的に処理する方法を徹底解説

はじめにこれまでの記事で、プロパティの「読み取り」を処理する __get() と、「書き込み」を処理する __set() を解説してきました。今回取り上げる __isset() は、isset() 関数や empty() 関数でプロパティの...
PHP

[PHP]__set()とは?アクセスできないプロパティへの書き込みを動的に処理する方法を徹底解説

はじめに前回の記事では、アクセスできないプロパティの「読み取り」を動的に処理する __get() を解説しました。今回取り上げる __set() は、その対となる、プロパティへの「書き込み」を動的に処理するマジックメソッドです。$obj->...