[英]Double dollar sign php
可能重復:
$$(美元或雙美元)在PHP中意味着什么?
我發現自己在我的一個控制器中使用了這種代碼:
foreach(get_object_vars($this->view) as $property=>$value){
$$property = $value;
}
使用$$屬性將視圖屬性“本地化”為簡單的$變量是否有任何問題?
編輯:
我應該補充一點,這個代碼是在特定於視圖的方法的范圍內運行的,所以沒有覆蓋局部變量的問題。 這是為了轉移你們中的一些人指出覆蓋局部變量的問題。
PHP中$$的問題在於您創建了未知的變量名稱,這可能會覆蓋您已使用的變量名稱。 它是細微編程錯誤的來源,通常不應使用。
好吧,你可以使用extract()
函數。 此片段: get_object_vars($this->view)
表示您應該使用一些數組來存儲這些變量,而不是對象。
不,這是做到這一點的方式,也是唯一的方法,如果我沒有弄錯的話。 雖然我的問題是問你為什么要這樣做而不是使用對象變量。
接受的答案是錯誤的! 雙美元不是問題的原因,不應該被認為是這樣的! 雙美元語法實際上是一個極好的PHP功能,在許多情況下都很有用!
如果您擔心使用它可能會覆蓋其他變量,那么這意味着您編寫的代碼很差! 無論如何,這種語法被更有經驗的程序員使用,因此初學者應該避免使用它,直到對他們正在做的事情更加確定。
在某些情況下,這非常有用的是根據其他變量,動態變量,不可知變量等的值循環變量。
再說一次,讓我最后說,雙美元是一個強大的功能,應該這樣對待! 擁有權利的同時也被賦予了重大的責任!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.