Tyl*_*ylo 31 php arrays object
例如:
$product = new Product("cat");
if(isset($sales[$product])){
$sales[$product]++;
}
else{
$sales[$product] = 1;
}
Run Code Online (Sandbox Code Playgroud)
Fel*_*ing 47
来自文档:
数组和对象不能用作键.这样做会导致警告:非法偏移类型.
您可以为每个实例提供唯一的ID或覆盖__toString(),以便它返回一些独特的内容,例如
$array[(string) $instance] = 42;
Run Code Online (Sandbox Code Playgroud)
goa*_*oat 24
您可以使用http://www.php.net/manual/en/class.splobjectstorage.php
$product = new Product("cat");
$sales = new SplObjectStorage();
if(isset($sales[$product])){
$sales[$product]++;
}
else{
$sales[$product] = 1;
}
Run Code Online (Sandbox Code Playgroud)
它不是一个真正的数组,但具有相当数量的类似数组的功能和语法.但是,由于它是一个对象,由于其奇怪的foreach行为,它在php中表现得像一个错配,并且它与所有本机php数组函数不兼容.有时您会发现通过它将其转换为真实数组很有用
$arr = iterator_to_array($sales);
Run Code Online (Sandbox Code Playgroud)
所以它与你的其余代码库一起玩得很好.
小智 17
有一个spl_object_hash函数,用于将唯一对象id作为字符串获取,可用作数组键.http://php.net/manual/en/function.spl-object-hash.php
| 归档时间: |
|
| 查看次数: |
20129 次 |
| 最近记录: |