另一個未提及的陷阱:如果您設定了 SKIP_EMPTY 旗標,則 key() 將不會反映實際的行號,因為空行不會被計算在內。
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
SplFileObject::key — 取得行號
此函式沒有參數。
回傳目前的行號。
範例 #1 SplFileObject::key() 範例
<?php
$file = new SplFileObject("lipsum.txt");
foreach ($file as $line) {
echo $file->key() . ". " . $line;
}
?>
以上範例會輸出類似以下的內容:
0. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 1. Duis nec sapien felis, ac sodales nisl. 2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
範例 #2 SplFileObject::key() 搭配 SplFileObject::setMaxLineLen() 的範例
<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
echo $file->key() . ". " . $line . "\n";
}
?>
以上範例會輸出類似以下的內容:
0. Lorem ipsum dolor s 1. it amet, consectetu 2. r adipiscing elit. 3. 4. Duis nec sapien fel 5. is, ac sodales nisl 6. . 7. Lorem ipsum dolor s 8. it amet, consectetu 9. r adipiscing elit.