在什么情况下使用更为适用:
现在,这两种数组是不同的。即使经过研究,我也看不出为什么要偏爱对象数组而不是传统数组...所以,有人能给我展示一下对象数组如何比普通数组更有优势的实际例子吗?
此外,我知道这些对象数组对于PHP来说相当新颖...但几乎所有的数据库函数都返回数组或单个变量:
上面的示例将内容作为单个变量返回。
因此,使用while循环来创建对象数组:
$Obj_Array = new ArrayObject(array(), ArrayObject::STD_PROP_LIST);
$Obj_Array->Key = "Value";
而:
$Array = array();
$Array['Key'] = "Value";
现在,这两种数组是不同的。即使经过研究,我也看不出为什么要偏爱对象数组而不是传统数组...所以,有人能给我展示一下对象数组如何比普通数组更有优势的实际例子吗?
此外,我知道这些对象数组对于PHP来说相当新颖...但几乎所有的数据库函数都返回数组或单个变量:
$Query = $DB->prepare("SELECT * FROM TBL WHERE col=?");
$Query->bind_param('s',$Variable);
$Query->execute();
$Query->bind_result($Col1, $Col2, $Col3);
$Query->fetch();
$Query->close();
上面的示例将内容作为单个变量返回。
因此,使用while循环来创建对象数组:
$Obj_Array = new ArrayObject(array(), ArrayObject::STD_PROP_LIST);
$Key_Creation = 0;
$Query = $DB->prepare("SELECT Username,Password FROM TBL WHERE col=?");
$Query->bind_param('s',$Variable);
$Query->execute();
$Query->bind_result($Col1, $Col2);
while($Query->fetch()){
$Obj_Array->$Key_Creation = array($Col1,$Col2);
$Key_Creation++;
}
$Query->close();
new stdClass
并在其中存储属性。ArrayObject
也提供了这些功能,如果你想实现一些更高级的场景,它可以帮助你节省编写代码的时间 - 就是这样。但它也强制你使用数组表示法,同时它不能与数组函数或接受类型提示数组参数的函数一起使用。我不知道该怎么说,但在我看来,它非常接近于无用的废物。 - Jon