我有几个问题。我写过这样的测试用例。
$animals = array(
array('Spook', 'spook.png'),
array('Helmut', 'pic1.jpg')
);
foreach($animals as $row){
$name = $row[0];
$picname = $row[1];
$picture = dirname(__FILE__) . "/$picname";
bind_param($stmt, 1, "name", DB2_PARAM_IN);
bind_param($stmt, 2, "picture", DB2_PARAM_FILE, DB2_BINARY);
$res = execute($stmt);
echo "insert into animal pics success\n";
}
从 for 循环我迭代每一行并调用执行。bind_param 将记住所有值,并在使用变量名“name”和“picture”执行时,它会尝试从 symbol_table 中获取值。但它失败了。我已将代码从 php 5 修改为 php 7。在 php5 中它通过了这个测试用例,但在 php7 中它失败了。
key = zend_string_init( curr->varname, strlen(curr->varname), 0 );
temp = zend_hash_find( &EG(symbol_table), key );
zend_string_release(key);
1)我错过了什么吗?
2)在 PHP5 中,我使用的是 active_symbol_table,但在这里(php7)我将其修改为 symbol_table(在谷歌的某个地方,我发现它可以将 active_symbol_table 修改为 symbol_table)。这是对的吗?