SplFileObject::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::keyGet line number

说明

public SplFileObject::key ( ) : int

Gets the current line number.

Note:

This number may not reflect the actual line number in the file if SplFileObject::setMaxLineLen() is used to read fixed lengths of the file.

参数

此函数没有参数。

返回值

Returns the current line number.

范例

Example #1 SplFileObject::key() example

<?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.

Example #2 SplFileObject::key() example with 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.

参见

User Contributed Notes

xzero at elite7hackers dot net 07-Aug-2020 07:35
Another gotcha that is not mentioned: If you have flag SKIP_EMPTY set, then key() will not reflect actual line numbers as empty lines are not accounted.