要?jiǎng)?chuàng)建一個(gè)新的對(duì)象 object,使用 new
語(yǔ)句實(shí)例化一個(gè)類:
<?php
class foo
{
function do_foo()
{
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
詳細(xì)討論參見(jiàn)手冊(cè)中類與對(duì)象章節(jié)。
如果將一個(gè)對(duì)象轉(zhuǎn)換成對(duì)象,它將不會(huì)有任何變化。如果其它任何類型的值被轉(zhuǎn)換成對(duì)象,將會(huì)創(chuàng)建一個(gè)內(nèi)置類
stdClass
的實(shí)例。如果該值為
null
,則新的實(shí)例為空。
array 轉(zhuǎn)換成 object 將使鍵名成為屬性名并具有相對(duì)應(yīng)的值。注意:在這個(gè)例子里, 使用 PHP 7.2.0 之前的版本,數(shù)字鍵只能通過(guò)迭代訪問(wèn)。
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // PHP 7.2.0 后輸出 'bool(true)',之前版本會(huì)輸出 'bool(false)'
var_dump(key($obj)); // PHP 7.2.0 后輸出 'string(1) "1"',之前版本輸出 'int(1)'
?>
對(duì)于其他值,會(huì)包含進(jìn)成員變量名 scalar
。
<?php
$obj = (object) 'ciao';
echo $obj->scalar; // 輸出 'ciao'
?>