看板 PHP 關於我們 聯絡資訊
※ 引述《HuangJC (吹笛牧童)》之銘言: : <?php : $dev['conf'] = array(); : unset($dev['conf']); // 我以為這樣 unset,就可以偽造新帳號 : $data = &$dev['conf']; : $dev['name'] = $data['basic']['name']; // err : var_dump($dev); : ?> PHP裡面只要你有去給值就當成了宣告 先來做個實驗 <? error_reporting( E_ALL); echo $dev ?> Notice: Undefined variable: dev in xxxx on line 4 先給值加上unset呢? <? error_reporting( E_ALL); $dev=1; unset($dev); echo $dev ?> 出現Notice: Undefined variable: dev in xxxx on line 6 證明unset是有作用的 最後 <? error_reporting( E_ALL); $det2=1; $dev=array(); unset($dev); $dev=&$dev2; echo $dev ?> 沒錯誤,原因就是...你知道的 這也是宣告的一種。 還是不夠? foreach(get_defined_vars() as $k=>$v){ echo $k.":".$v."<br>"; } 測試看看就知道了 結論這不是BUG(我也認真了起來=_=); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.56.213.47 ※ 編輯: arrack 來自: 61.56.213.47 (07/24 20:20)
kusoayan :這系列只有這篇讓我學到東西=_= 07/24 21:45
bobju :是指foreach()裏包了一個函式嗎? 這....(抖) 07/24 23:11
bobju :喔,原來可以..我還以為會造成重複呼叫..>_<; 07/24 23:15
shadowjohn :php版裡的謠言終結者 m(_ _)m 07/25 00:01
j87b0003 :推這篇XD" 07/25 00:26
weiyucsie :推XD 07/25 00:44
HuangJC :不過我討論的是 unset $dev2 ,至於上例$dev 等於馬上 07/25 01:47
HuangJC :被宣告,這倒是很明確;&指到未定義變數時會馬上'生'出 07/25 01:48
HuangJC :來才是我驚訝的 07/25 01:48
arrack :老實說 那個警告我是常年的關掉, 07/25 08:43
※ 編輯: arrack 來自: 61.56.213.47 (07/25 08:55)
weiyucsie :http://tinyurl.com/nh3dtg 說到&馬上生出來 07/25 12:36
weiyucsie :不知道從上面那個網址的說明可不可以看出端倪 07/25 12:36
weiyucsie :Using references with undefined variables <-- 07/25 12:36
arrack :$a and $b are completely equal here. $a is not po 07/25 14:46
arrack :not pointing to $b or vice versa. $a and $b are 07/25 14:46
arrack :pointing to the same place. 所以... 07/25 14:46
HuangJC :我們網站會分開發及上市階段,上市後也會關閉警告 07/25 17:54
HuangJC :有些團體化的運作方式不是個人能想像的 07/25 17:54
※ 編輯: arrack 來自: 61.62.36.202 (07/26 18:41)
arrack :難想像?,哈哈... 07/26 18:42
HuangJC :有時跟第二個主管,他愛用的方法正是被第一個主管批成 07/27 13:51
HuangJC :一文不值的東西;是要加入批判主管大嘆不得志,還是簡 07/27 13:52
HuangJC :單交代一下'每間公司不同',去適應就好了呢~ 07/27 13:52