$in_fields = array();
$in_values = array();
$placeholders = array(); // new array
foreach ($_POST as $key => $value) {
if (!empty($value)) {
$value = sql_escape($value);
$in_fields[] = "[{$key}]";
$in_values[] = "'{$value}'";
// add a placeholder to the array
$placeholders[] = "?";
}
}
if (!empty($in_fields)) {
$sql = "INSERT into [table_name](";
$sql .= implode(", ", $in_fields);
$sql .= ") VALUES (" . implode(",", $placeholders) . ")";
if (executeSql($sql, $in_values)) {
$success = "Successfully Added New Record";
}
}
输出: -
var foo = {
a : function(){
console.log(this)
},
b : console.log(this)
}
foo.a()
{}
{ a: [Function: a], b: undefined }
变量,因此评估键foo
,通过b
为我们提供全局对象: - 它在节点中显示console.log()
并{{1在浏览器中
但是,在调用{}
时,Window
会显示foo.a()
我错过了一些概念吗?为什么不再对它进行评估?
谢谢
答案 0 :(得分:1)
您创建一个foo对象,并为其分配两个属性:
a
设置为包含文字function(){console.log(this)}
b
设置为console.log(this)
的返回值。 console.log(this)立即执行,并注销该对象。该对象尚未获得其属性,因此它会注销{}
。 console.log()的返回值为undefined
,因此b
设置为undefined
。您现在已经初始化了对象,其中a = some函数,b = undefined。稍后,当你调用a时,它会使用a = some函数注销foo对象,并且b = undefined。