・ッ・鬣ケ、ネ・ェ・ヨ・ク・ァ・ッ・ネ
PHP Manual

・゙・ク・テ・ッ・皈ス・テ・ノ

ーハイシ、ホエリソセ __construct, __destruct, __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __invoke, __set_state 、ェ、隍モ __clone 、マ。「PHP ・ッ・鬣ケ、ヒ、ェ、ア、�テシ�リソホフセチー、ヌ、ケ。」 、ウ、�鬢ホエリソヒエリマ「、ケ、�テハフ、ハオ。ヌス、ネヘム、ケ、��遉�ュ。「 ・ッ・鬣ケニ筅ヒ、ウ、�鬢ホフセチー、ュ、ケ、�リソ鋿ョ、キ、ニ、マ、、、ア、゙、サ、」

キルケ�

PHP 、マ。「__ 、ヌサマ、゙、�リソセ、テシ�リソネ、キ、ニヘスフキ、ニ、、、゙、ケ。」 ハクスス、オ、�ソニテシ�ハオ。ヌス、ャヘラ、ネ、ケ、��遉�ュ。「 __ 、ヌサマ、゙、�リソセ、ネヘム、キ、ハ、、、ウ、ネ、ャソ萓ゥ、オ、�゙、ケ。」

__sleep 、ネ __wakeup

serialize() 、マ。「・ッ・鬣ケ、ヒニテシ�ハフセチー __sleep 、ホエリソャ、「、�ォ、ノ、ヲ、ォ、エ、ル、゙、ケ。」 、筅キ、「、�ミ。「・キ・�「・�ス、ホチー、ヒ、ス、ホエリソツケヤ、キ、゙、ケ。」 、ウ、ホエリソヌ。「・ェ・ヨ・ク・ァ・ッ・ネ、ッ・�「、ケ、�ウ、ネ、ャ、ヌ、ュ、゙、ケ。」 、゙、ソ、ウ、ホエリソマ。「・キ・�「・�ス、ケ、�ェ・ヨ・ク・ァ・ッ・ネ、ヒ、ト、、、ニ。「 、ケ、ル、ニ、ホハムソホフセチー、ロホヌハヨ、ケ、ウ、ネ、ャチートネ、ハ、テ、ニ、、、゙、ケ。」 、ウ、ホ・皈ス・テ・ノ、ャイソ、簗ヨ、オ、ハ、ォ、テ、ソセ�遉マ。「NULL 、ャ・キ・�「・�ス、オ、�「E_NOTICE 、ャネッタク、キ、゙、ケ。」

テ擎ユ:

__sleep 、ヌ。「ソニ・ッ・鬣ケ、ホ private ・ラ・愠ム・ニ・」、ホフセチー、ヨ、ケ、ウ、ネ、マ、ヌ、ュ、゙、サ、」 、ス、ヲ、キ、隍ヲ、ネ、ケ、�ネ E_NOTICE ・�ル・�ホ・ィ・鬘シ、ネ、ハ、熙゙、ケ。」 、ウ、ホセ�遉マ。「、ォ、�熙ヒ Serializable ・、・ソ。シ・ユ・ァ・、・ケ、ネ、、、゙、ケ。」

ナオキソナェ、ハ __sleep 、ホサネヘムヒ。、マ。「 ナモテ讀ホ・ヌ。シ・ソ、ウ・゚・テ・ネ、キ、ソ、遙「 サソ、隍ヲ、ハ・ソ・ケ・ッ、ホ・ッ・�「、ヤ、ヲ、ネ、、、テ、ソ、筅ホ、ヌ、ケ。」 、゙、ソ。「・ェ・ヨ・ク・ァ・ッ・ネ、ャネ�ヒツ遉ュ、ッ。「、ォ、ト。「エーチエ、ヒハンツク、ケ、�ャヘラ、ャ、ハ、、セ�遑「 、ウ、ホエリソャヘュヘム、ヌ、ケ。」

オユ、ヒ。「unserialize() 、マ。「 ニテシ�ハフセチー __wakeup 、ュ、ケ、� エリソホツクコ゚、エ、ル、゙、ケ。」 、筅キツクコ゚、ケ、��遑「、ウ、ホエリソマ。「・ェ・ヨ・ク・ァ・ッ・ネ、ャヘュ、ケ、�トヌスタュ、ャ 、「、�「、鬢讀��ス。シ・ケ、ニケステロ、ケ、�ウ、ネ、ャ、ヌ、ュ、゙、ケ。」

ーユゾ、オ、�� __wakeup 、ホサネヘムヒ。、マ。「 ・キ・�「・�ス、ホコン、ヒシコ、��ソ・ヌ。シ・ソ・ル。シ・ケタワツウ、ニナルウホホゥ、キ、ソ、遙「 、ス、ホツセ、ホコニス魘�ス、ヤ、ヲ、ウ、ネ、ヌ、ケ。」

ホ�1 Sleep 、ェ、隍モ wakeup

<?php
class Connection
{
    protected 
$link;
    private 
$server$username$password$db;
    
    public function 
__construct($server$username$password$db)
    {
        
$this->server $server;
        
$this->username $username;
        
$this->password $password;
        
$this->db $db;
        
$this->connect();
    }
    
    private function 
connect()
    {
        
$this->link mysql_connect($this->server$this->username$this->password);
        
mysql_select_db($this->db$this->link);
    }
    
    public function 
__sleep()
    {
        return array(
'server''username''password''db');
    }
    
    public function 
__wakeup()
    {
        
$this->connect();
    }
}
?>

__toString

__toString ・皈ス・テ・ノ、ヒ、隍遙「 ・ッ・鬣ケ、ャハクサ昀ヒハムエケ、オ、��ン、ホニーコ釥隍皃�ウ、ネ、ャ、ヌ、ュ、゙、ケ。」、ソ、ネ、ィ、ミ echo $obj; 、ネ、キ、ソ、ネ、ュ、ヒイソ、スシィ、オ、サ、�ォ、ネ、、、テ、ソ、ウ、ネ、ヌ、ケ。」 、ウ、ホ・皈ス・テ・ノ、マハクサ昀ヨ、オ、ハ、ア、�ミ、ハ、熙゙、サ、」、ス、�ハウー、ホセ�遉マ E_RECOVERABLE_ERROR ・�ル・�ホテラフソナェ、ハ・ィ・鬘シ、ャネッタク、キ、゙、ケ。」

ホ�2 エハテア、ハホ�

<?php
// エハテア、ハ・ッ・鬣ケ、�タ
class TestClass
{
    public 
$foo;

    public function 
__construct($foo)
    {
        
$this->foo $foo;
    }

    public function 
__toString()
    {
        return 
$this->foo;
    }
}

$class = new TestClass('Hello');
echo 
$class;
?>

セ螟ホホ网ホスミホマ、マーハイシ、ネ、ハ、熙゙、ケ。」

Hello

テ擎ユ、ャノャヘラ、ハ、ホ、マ。「PHP 5.2.0 、隍�ー、ヌ、マ。「 __toString ・皈ス・テ・ノ、マ echo() 、゙、ソ、マ print(). 、ネトセタワキ�遉オ、�ソセ�遉ホ、゚・ウ。シ・�オ、�ニ、、、ソ、ネ、、、ヲ、ウ、ネ、ヌ、ケ。」 PHP 5.2.0 ーハケ゚、ヌ、マ。「、ウ、�マ、ケ、ル、ニ、ホハクサ昀ウ・ニ・ュ・ケ・ネ (、ソ、ネ、ィ、ミ printf() 、ヒ、ェ、ア、� %s ス、セ�サメ) 、ヌ・ウ。シ・�オ、�゙、ケ。」、キ、ォ、キ。「、ス、ホツセ、ホキソ、ホ・ウ・ニ・ュ・ケ・ネ (、ソ、ネ、ィ、ミ %d ス、セ�サメ) 、ヌ、マ・ウ。シ・�オ、�゙、サ、」 PHP 5.2.0 ーハケ゚、ヌ、マ。「__toString ・皈ス・テ・ノ、�、テ、ニ、、、ハ、、・ェ・ヨ・ク・ァ・ッ・ネ、クサ昀ヒハムエケ、キ、隍ヲ、ネ、ケ、�ネ E_RECOVERABLE_ERROR 、ャネッタク、キ、゙、ケ。」

__invoke

__invoke ・皈ス・テ・ノ、マ。「 ・ケ・ッ・�ラ・ネ、ャ・ェ・ヨ・ク・ァ・ッ・ネ、リソネ、キ、ニ・ウ。シ・�キ、隍ヲ、ネ、キ、ソコン、ヒ・ウ。シ・�オ、�゙、ケ。」

テ擎ユ:

、ウ、ホオ。ヌス、マ PHP 5.3.0 ーハケ゚、ヌサネヘムイトヌス、ヌ、ケ。」

ホ�3 __invoke 、ホサネヘム

<?php
class CallableClass
{
    public function 
__invoke($x)
    {
        
var_dump($x);
    }
}
$obj = new CallableClass;
$obj(5);
var_dump(is_callable($obj));
?>

セ螟ホホ网ホスミホマ、マーハイシ、ネ、ハ、熙゙、ケ。」

int(5)
bool(true)

__set_state

、ウ、ホ static ・皈ス・テ・ノ、マ。「 PHP 5.1.0 ーハケ゚、ヌ var_export() 、ヒ、隍テ、ニ ・ィ・ッ・ケ・ン。シ・ネ、オ、�ソ・ッ・鬣ケ、ホ、ソ、皃ヒ・ウ。シ・�オ、�゙、ケ。」

、ウ、ホ・皈ス・テ・ノ、ホヘ」ー�ホ・ム・鬣癸シ・ソ、マ。「・ィ・ッ・ケ・ン。シ・ネ、オ、�ソ・ラ・愠ム・ニ・」、� array('property' => value, ...) 、ホキチシー、ヌハンサ�、ケ、�ロホヌ、ケ。」

ホ�4 __set_state 、ホサネヘムヒ。 (PHP 5.1.0 ーハケ゚)

<?php

class A
{
    public 
$var1;
    public 
$var2;

    public static function 
__set_state($an_array// PHP 5.1.0 ーハケ゚
    
{
        
$obj = new A;
        
$obj->var1 $an_array['var1'];
        
$obj->var2 $an_array['var2'];
        return 
$obj;
    }
}

$a = new A;
$a->var1 5;
$a->var2 'foo';

eval(
'$b = ' var_export($atrue) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);

?>

セ螟ホホ网ホスミホマ、マーハイシ、ネ、ハ、熙゙、ケ。」

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

・ッ・鬣ケ、ネ・ェ・ヨ・ク・ァ・ッ・ネ
PHP Manual