我正在尝试将此 C# 方法转换为 PHP。第二个参数中的out是什么意思?
public static bool Foo(string name, out string key)
out
关键字指定参数必须由被调用的方法赋值,赋值的值会传回调用方法。查看MSDN了解更多信息。
我不认为 PHP 具有所需的赋值行为的等价物,但如果您正在转换方法主体并在内部维护该行为,您应该能够将其转换为常规的通过引用参数传递并保持相同的功能。
public static function foo($str, &$key)
^
| Pass by reference
请考虑在 C# 中,您必须在使用时在调用方法中设置一个值,out
遗憾的是您不能直接将其转换为 PHP。
一点点谷歌搜索把我带到了这个网站: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# 中 out-parameter 的精确 PHP 版本