2014-07-17 42 views
0

我想要做這樣的事情:PHP只讀功能參數

$variable = ...; 
$result=exampleFunction($variable); 

exampleFunction(readonly $variable) 
{ 
    ... 
} 

我的意思是我想使只讀在功能參數, 可以做到這一點在PHP?

+2

當你調用一個函數,除非你有'&$ variable',只是刪除只讀,而且全是 – Sal00m

+0

,否則參數不會被修改。但是你可以決定不改變它。 – GolezTrol

回答

-1

你的問題有點不清楚,你對什麼是隻讀變量的定義?在這種情況下它會以不同的方式做一個正常變量?

如果您要將變量解析爲讀取並處理該變量的函數,但您只希望它讀取它,則不可能這樣做,您將需要修改函數代碼。

+0

我想要例如看到警告或錯誤,如果我犯了錯誤,並更改我的$變量的值,當我想在函數中多次使用此變量。或者只是我想告訴其他巨魔它不能被修改。 – user3383675

+0

所以你擔心你可能會不小心重新分配一個不正確的值給你正在解析爲一個函數的變量?不幸的是,據我所知,沒有辦法阻止php能夠做到這一點 例如,如果想要將'this'傳遞給一個函數,您可以執行'$ variable =「this」'但是如果您執行'$ variable =「that」'在執行'function($ varaible)之前'''''''''''''''''''''''''''' – jordan

0

函數參數只讀(對象和資源除外)。所以,readonly關鍵字沒有理由。

對於傳遞參數到函數中的對象,您可以使用clone關鍵字。例如:

exampleFunction(clone $obj); 

如果您希望資源只能讀取,則必須創建資源爲只讀。