SplObjectStorage::key()函式用於獲取當前迭代器指向的元素的鍵。
用法:
SplObjectStorage::key(): mixed
引數:無
返回值:
- 如果當前迭代器指向的元素存在鍵,則返回該鍵;
- 如果當前迭代器指向的元素沒有鍵(例如使用add()方法新增元素時沒有指定鍵),則返回null。
示例:
// 建立一個SplObjectStorage物件
$storage = new SplObjectStorage();
// 建立兩個物件
$obj1 = new stdClass();
$obj2 = new stdClass();
// 將物件新增到SplObjectStorage中
$storage->attach($obj1);
$storage->attach($obj2);
// 使用foreach迴圈遍歷SplObjectStorage物件
foreach ($storage as $obj) {
// 獲取當前元素的鍵
$key = $storage->key();
// 輸出鍵和對應的物件
echo "鍵: " . ($key !== null ? $key : "(無)") . "\n";
echo "物件: " . var_export($obj, true) . "\n";
}
輸出:
鍵: (無)
物件: stdClass::__set_state(array())
鍵: (無)
物件: stdClass::__set_state(array())
在上面的示例中,我們建立了一個SplObjectStorage物件,並向其新增了兩個物件。然後,使用foreach迴圈遍歷SplObjectStorage物件,並透過SplObjectStorage::key()函式獲取當前元素的鍵。由於我們沒有為物件指定鍵,所以返回的鍵為null。