使用类似的东西:
var options = {
rememberLastLogin: false,
auth: {
sso: false,
redirect: false
}
};
var lock = new Auth0Lock('clientID', 'account.auth0.com', options);
然后尝试用f.e。
获取记录lock.show
它返回一个带有StdObjects的数组,如下所示:
var concatFilters = function (obj){
var data = [];
var array = $.map(obj, function (value, index){
return [value];
});
function iterate(lists){
var values = [];
function process(index){
var list = lists[index];
if(list){
for(var i = 0; i < list.length; i++){
if(list[i]){
values[index] = list[i];
}
process(index + 1);
}
}
var value = values.join('');
if(data.indexOf(value) === -1){
data.push(value);
}
return data;
}
for(var num = 0; num < lists.length; num++){
process(num);
}
return data
}
iterate(array);
var filters = data.filter(Boolean);
return filters.join(', ');
};
var myObj = {
classes1: ['.classI'],
classes2: ['.classA', '.classB'],
classes3: ['.class1', '.class2', '.class3'],
}
var concatVals = concatFilters(myObj);
console.log(concatValues);
使用$db = new PDO(connection_details)
$query = "SELECT * FROM vservers LIMIT 5";
$result = $db->query($query);
返回StdObjects
while ($row = $result->fetchAll(PDO::FETCH_OBJ)) {
var_dump($row);
}
有人可以解释一下这种行为吗?通常情况下,我想像array (size=5)
0 =>
object(stdClass)[3]
public 'vserverid' => string '898' (length=3)
public 'templatename' => string 'Debian' (length=14)
public 'template' => string 'debian-7.0-x86' (length=14)
1 =>
object(stdClass)[4]
public 'vserverid' => string '792' (length=3)
public 'templatename' => string 'Ubuntu' (length=33)
public 'template' => string 'ubuntu-15.04' (length=27)
一样返回对象,但这是一个好习惯吗?
答案 0 :(得分:1)
fetchAll()
将所有结果作为数组返回,其中每个元素都是表示表中一行的对象。
在while
代码中,第一次迭代将$row
设置为整个结果集,并将其作为单个数组转储。只有一次迭代,因为下次调用fetchAll()
会返回一个空数组,因为没有什么可以提取。
在foreach
代码中,fetchAll()
将数组返回到foreach
,然后一次迭代一个元素,将$key
设置为每个对象。然后你将一个物体转移到你的身体里。
通常,当您使用while
时,您使用的是fetch()
,而不是fetchAll()
。此代码等同于foreach
:
while ($key = $result->fetch(PDO::FETCH_OBJ)) {
var_dump($key);
}