ーハイシ、ホエリソセ __construct, __destruct, __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __invoke, __set_state 、ェ、隍モ __clone 、マ。「PHP ・ッ・鬣ケ、ヒ、ェ、ア、�テシ�リソホフセチー、ヌ、ケ。」 、ウ、�鬢ホエリソヒエリマ「、ケ、�テハフ、ハオ。ヌス、ネヘム、ケ、��遉�ュ。「 ・ッ・鬣ケニ筅ヒ、ウ、�鬢ホフセチー、ュ、ケ、�リソ鋿ョ、キ、ニ、マ、、、ア、゙、サ、」
PHP 、マ。「__ 、ヌサマ、゙、�リソセ、テシ�リソネ、キ、ニヘスフキ、ニ、、、゙、ケ。」 ハクスス、オ、�ソニテシ�ハオ。ヌス、ャヘラ、ネ、ケ、��遉�ュ。「 __ 、ヌサマ、゙、�リソセ、ネヘム、キ、ハ、、、ウ、ネ、ャソ萓ゥ、オ、�゙、ケ。」
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 ・皈ス・テ・ノ、ヒ、隍遙「 ・ッ・鬣ケ、ャハクサ昀ヒハムエケ、オ、��ン、ホニーコ釥隍皃�ウ、ネ、ャ、ヌ、ュ、゙、ケ。」、ソ、ネ、ィ、ミ 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 ・皈ス・テ・ノ、マ。「 ・ケ・ッ・�ラ・ネ、ャ・ェ・ヨ・ク・ァ・ッ・ネ、リソネ、キ、ニ・ウ。シ・�キ、隍ヲ、ネ、キ、ソコン、ヒ・ウ。シ・�オ、�゙、ケ。」
テ擎ユ:
、ウ、ホオ。ヌス、マ 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)
、ウ、ホ 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($a, true) . ';'); // $b = A::__set_state(array(
// 'var1' => 5,
// 'var2' => 'foo',
// ));
var_dump($b);
?>
セ螟ホホ网ホスミホマ、マーハイシ、ネ、ハ、熙゙、ケ。」
object(A)#2 (2) { ["var1"]=> int(5) ["var2"]=> string(3) "foo" }