ArrayIterator::setFlags()
方法用於設定迭代器的標誌位。
用法:
void ArrayIterator::setFlags ( int $flags )
引數:
$flags
:一個表示標誌位的整數值,可以是以下常量的組合(可用|
連線):ArrayIterator::STD_PROP_LIST
:按屬性迭代,忽略陣列索引。ArrayIterator::ARRAY_AS_PROPS
:將陣列元素作為物件屬性使用。ArrayIterator::IGNORE_CASE
:在屬性名稱不區分大小寫的情況下進行迭代。ArrayIterator::UNIX_PATHS
:以Unix路徑方式迭代。
示例:
考慮以下示例陣列:
$data = [
'name' => 'John Smith',
'age' => 30,
'email' => '[email protected]',
];
使用 ArrayIterator
進行迭代:
$iterator = new ArrayIterator($data);
// 設定標誌位為 `ArrayIterator::STD_PROP_LIST`,按屬性迭代
$iterator->setFlags(ArrayIterator::STD_PROP_LIST);
// 按屬性迭代輸出鍵和值
foreach ($iterator as $key => $value) {
echo "<strong>$key:</strong> $value<br>";
}
輸出:
name: John Smith
age: 30
email: [email protected]
使用 ArrayIterator
進行迭代並將陣列元素作為物件屬性:
$iterator = new ArrayIterator($data);
// 設定標誌位為 `ArrayIterator::ARRAY_AS_PROPS`
$iterator->setFlags(ArrayIterator::ARRAY_AS_PROPS);
// 作為物件屬性迭代輸出鍵的值
foreach ($iterator as $key => $value) {
echo "Object property '$key': {$iterator->$key}<br>";
}
輸出:
Object property 'name': John Smith
Object property 'age': 30
Object property 'email': [email protected]