簡體   English   中英

雙美元符號php

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM