PHP';s db2_bind_param()

PHP';s db2_bind_param(),php,data-binding,db2,Php,Data Binding,Db2,为什么必须使用此函数将变量名指定为字符串值?为什么我不能直接使用变量名呢?我觉得这很傻 例如: db2_bind_param($prepared,1,“foo1”) 可能它在做类似于: function db2_bind_param($stmt, $position, $name) { global $$name; $$name = &$stmt[$position]; } 只是猜测一下…如中所述,它是资源绑定到的变量: bool db2_bind_param(resour

为什么必须使用此函数将变量名指定为字符串值?为什么我不能直接使用变量名呢?我觉得这很傻

例如:
db2_bind_param($prepared,1,“foo1”)

可能它在做类似于:

function db2_bind_param($stmt, $position, $name) {
   global $$name;
   $$name = &$stmt[$position];
}
只是猜测一下…

如中所述,它是资源绑定到的变量:

bool db2_bind_param(resource $stmt , int $parameter-number , string $variable-name, ...)
这样,您就有了一个干净的签名,因为它总是返回布尔值,而不返回其他数据类型。其他函数返回false或资源。我相信,这个库是从C或C++之类的强类型语言移植过来的。在这些语言中,您只能在签名中指定一种返回类型—类似于
bool | resource db2_bind_param(…)
不起作用

最后你是对的:在像PHP这样的松散类型语言中,你不需要它。

这样,您就可以通过编程方式绑定一组变量,如

$db_vars=数组(“foo1”、“foo2”);

对于($i=1;$iI我不知道什么是干净的签名,但是你的解释很有道理。所以在C/C++中,如果函数声明为int或bool,它们只允许返回int或bool?函数签名就是你所说的返回类型、函数名和参数类型的元组。我真的不明白为什么这两种方法都不能用于上一个ex充足的:(