【发布时间】:2010-12-02 00:27:26
【问题描述】:
我在函数内部传递了一些数组作为参数。例如:
测试($someArray[2][3]);在这种情况下,函数获取存储在 (2,3) 中的值,但有一种方法可以从函数内部获取键值 (2,3) 以使用?该函数应使用值的 x,y 位置进行一些计算。
谢谢!
【问题讨论】:
我在函数内部传递了一些数组作为参数。例如:
测试($someArray[2][3]);在这种情况下,函数获取存储在 (2,3) 中的值,但有一种方法可以从函数内部获取键值 (2,3) 以使用?该函数应使用值的 x,y 位置进行一些计算。
谢谢!
【问题讨论】:
不是这样,不。如果您调用test($someArray[2][3]),那么PHP 将只传递该值,而不传递该值来自的任何引用。无论如何单独传递值更干净
function test($x, $y, $value) { /* do something */ }
【讨论】:
不,下标将在函数接收到它之前执行。
所以如果你的代码是......
$someArray = array(
2 => array(3 => 'Hello');
);
function test($arg) {
}
test($someArray[2][3]);
那么$arg 将是一个字符串Hello。它不知道也不关心它来自哪里。
【讨论】:
$arg 将是 NULL 并引发通知,因为您创建的数组名为 $arr,而不是 $someArray..:P
您只在[2][3] 处传递单个元素;一旦进入函数,就没有数组了。如果你需要位置,你应该分别传递数组/元素和索引:
test($someArray, 2, 3); // if you might access other elements too
或:
test($someArray[2][3], 2, 3); // if you don't need other elements
【讨论】: