回答
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++/CLI
- 5. C#在C++中的默认关键字相当于?
- 6. PCYACC预计关键字相当于
- 7. 什么是VB.NET相当于C#的默认关键字?
- 8. 相当于C++ mutable关键字的Swift结构?
- 9. F#相当于C#的“对象”关键字
- 10. Cassandra frozen关键字含义
- 11. C++相当于PHP的包()
- 12. PHP相当于C的fputc
- 13. C#相当于PHP http_build_query
- 14. RTRIM PHP相当于在C#
- 15. C#相当于PHP openssl_public_decrypt
- 16. $ this关键字的含义是什么?
- 17. 超级关键字的含义
- 18. Alloy中“private”关键字的含义? '枚举'声明的含义?
- 19. 在C“出”关键字++
- 20. Java中是否有任何关键字与C#中的'AS'关键字相似?
- 21. 什么是VB的“阴影”或C#“新”关键字相当于Java?
- 22. 关键字ref在C#中的含义是什么?
- 23. C Sharp中“friend”关键字的等效含义是什么?
- 24. Java和C++中static关键字的含义是什么?
- 25. C中'where'关键字的含义是什么?
- 26. Objective-C上下文中__typeof关键字的含义是什么?
- 27. 相当于PHP的fgets()的C++?
- 28. 在PHP中是否有相当于C#的逐字字符串文字?
- 29. JObject包含一个C#关键字 - 如何访问它?
- 30. 转义包含表关键字
首先要有的外参数的精确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