SplFixedArray::offsetUnset
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SplFixedArray::offsetUnset — Unsets the value at the specified $index
说明
public SplFixedArray::offsetUnset(int
$index
): voidUnsets the value at the specified index.
参数
-
index
-
The index being unset.
返回值
没有返回值。
错误/异常
Throws RuntimeException when index
is outside
the defined size of the array or when index
cannot be parsed as an integer.

User Contributed Notes 1 note
c dot 1 at smithies dot org ¶
11 years ago
This function assigns NULL to the array element. Its use has no effect on count(). Whereas assigning NULL to an element will have no effect on isset(), offsetUnset() and unset() do. Whereas unsetting an element affects the behaviour of foreach() as applied to an array or an ArrayObject, it has no such effect on SplFixedArray, as demonstrated by the code below.
<?php
class atest extends SplFixedArray {
public function fill() {
for ($i = $this->count(); --$i >= 0; ) $this[$i] = $i;
}
public function dump() {
$sep = ' ';
foreach ($this as $k => $v) {
echo $sep, "$k: ", (is_null($v) ? 'NULL' : $v);
if (!isset($this[$k])) echo ' and unset';
$sep = ', ';
}
echo PHP_EOL;
}
}
$a = new atest(3);
$a->dump(); // 0: NULL and unset, 1: NULL and unset, 2: NULL and unset
$a->fill();
$a->dump(); // 0: 0, 1: 1, 2: 2
$a[1] = NULL;
unset($a[2]);
$a->dump(); // 0: 0, 1: NULL, 2: NULL and unset
?>
备份地址:http://www.lvesu.com/blog/php/splfixedarray.offsetunset.php