回答
public static function foo($str, &$key)
^
| Pass by reference
使用out
和時黯然不能直接翻譯成PHP請考慮在C#中,你必須在調用方法中設置的值。
@MadaraUchiha:他問如何將其轉換爲PHP ...這是相當自我解釋我相信。 – dynamic 2013-03-21 23:13:15
@llnk:如果這是自我解釋,他不會提問,你不會將'ref'與'out' ;-) – 2013-03-21 23:14:40
這不是自我解釋。問題*主要是詢問'out'關鍵字是什麼意思。轉換是次要的。 *也*,作爲一個不知道C#的人,我不知道'out'參數的意思,所以你的問題對我來說沒有什麼價值。 – 2013-03-21 23:14:52
的out
關鍵字指定參數必須由所調用的方法被分配給,並分配值將被傳遞迴調用方法。查看MSDN瞭解更多信息。
我不認爲PHP具有所需的分配行爲的等價物,但如果您要轉換方法主體並在內部維護該行爲,則應該能夠將其轉換爲常規傳入引用參數並維護相同的功能。
一個Googeling的點點把我帶到這個網站:http://www.php.net/manual/en/language.references.pass.php
如你所知,一個參數是一個變量的副本。 這意味着你不會真的改變變量本身。
例如:
<?php
function foo($bar) {
$bar++;
}
$bar = 5; // $bar = 5
foo($bar); // $bar = 6
echo $bar; // $bar = 5
?>
雖然這一段代碼將實際改變給定的變量,因爲是使用參考。
<?php
function foo(&$bar) {
$bar++;
}
$bar = 5; // $bar = 5
foo($bar); // $bar = 6
echo $bar; // $bar = 6 now
?>
注:這是不是你在C#
- 1. 有沒有Java相當於C#出關鍵字
- 2. AS3相當於PHP的關鍵數組
- 3. 相當於C#的'只讀'關鍵字的C++/CLI
- 4. C#在C++中的默認關鍵字相當於?
- 5. 相當於C++檢查關鍵字的C++/CLI
- 6. PCYACC預計關鍵字相當於
- 7. F#相當於C#的「對象」關鍵字
- 8. 什麼是VB.NET相當於C#的默認關鍵字?
- 9. 相當於C++ mutable關鍵字的Swift結構?
- 10. Cassandra frozen關鍵字含義
- 11. Q_DECL_EXPORT關鍵字含義
- 12. C++相當於PHP的包()
- 13. PHP相當於C的fputc
- 14. 定義關鍵字的含義
- 15. C#相當於PHP openssl_public_decrypt
- 16. RTRIM PHP相當於在C#
- 17. C#相當於PHP http_build_query
- 18. C#相當於PHP call_user_func
- 19. PHP相當於C#`:base`
- 20. 'final'關鍵字的含義是什麼?
- 21. 超級關鍵字的含義
- 22. 關鍵字「新」在javascript中的含義
- 23. $ this關鍵字的含義是什麼?
- 24. Alloy中「private」關鍵字的含義? '枚舉'聲明的含義?
- 25. 在C「出」關鍵字++
- 26. 學習CodeIgniter - 相當於PHP包含
- 27. Java中是否有任何關鍵字與C#中的'AS'關鍵字相似?
- 28. 什麼是VB的「陰影」或C#「新」關鍵字相當於Java?
- 29. 關鍵字ref在C#中的含義是什麼?
- 30. Java和C++中static關鍵字的含義是什麼?
首先要有的外參數的精確PHP版本,我不知道你爲什麼會使用一個外部參數。所有out和ref參數都可以用簡單的返回來替換。這提供了對輸出的更多控制。 – GroundZero 2013-03-21 23:19:54
@GroundZero ...它已經返回另一種類型。 – 2013-03-21 23:20:36
@ J.Steen然後使用一個對象返回...如果你有一個方法應該返回第一個和最後一個名字,使用包含這兩個字符串的Name對象。這使用out和return來解決醜陋的代碼。首先,應避免使用out/ref,並且應該避免使用out/ref並返回 – GroundZero 2013-03-21 23:31:42