Re: [討論] & new
找到一個差異
<?php
class SomeClass{
...
}
function func()
{
global $sc;
$sc =& new SomeClass;
}
function func2()
{
global $sc;
$sc = new SomeClass;
}
func();
var_dump($sc); // NULL
func2();
var_dump($sc); // object(SomeClass)#1 (0) { }
?>
func()無法成功建立global的$sc, 可能如我所說的
$sc =& new SomeClass;
相當於
$tmp = new SomeClass;
$sc =& $tmp;
然後$tmp是區域變數, 離開scope之後就變成NULL
※ 引述《emn178 (小殘)》之銘言:
: 看到一段code大概長這樣
: class SomeClass{
: ...
: }
: $sc =& new SomeClass;
: .
: .
: 一般用
: $sc = new SomeClass;
: 就可以建立物件了, 不知道多加一個&的用意為何?
: 我猜測程式流程應該相當於這樣
: $tmp = new SomeClass;
: $sc =& $tmp;
: 不過object本來就pass by ref
: 所以不知道為何這樣寫啊
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.74.77
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章