PHP Conference Japan 2024

SplFixedArray::offsetUnset

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

SplFixedArray::offsetUnset取消設定指定 $index 的值

說明

public SplFixedArray::offsetUnset(int $index): void

取消設定指定索引的值。

參數

index

要取消設定的索引。

返回值

不返回任何值。

錯誤/例外

index 超出陣列定義的大小,或者 index 無法被解析為整數時,會丟出 RuntimeException 例外。

新增註記

使用者貢獻的註記 1 則註記

c dot 1 at smithies dot org
14 年前
此函式會將陣列元素指定為 NULL。它的使用不會影響 count()。雖然將元素指定為 NULL 不會影響 isset(),但 offsetUnset() 和 unset() 則會。雖然取消設定元素會影響 foreach() 應用於陣列或 ArrayObject 的行為,但它對 SplFixedArray 沒有這種影響,如下面的程式碼所示。

<?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
?>
To Top