PHP 8.4.0 RC4 available for testing

CachingIterator::offsetSet

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

CachingIterator::offsetSetThe offsetSet purpose

Опис

public CachingIterator::offsetSet(string $key, mixed $value): void
Увага

Наразі ця функція не документована. Доступний лише список її параметрів.

Параметри

key

The index of the element to be set.

value

The new value for the key.

Значення, що повертаються

Не повертає значень.

add a note

User Contributed Notes 1 note

up
0
ddrake at dreamingmind dot com
4 years ago
offsetSet($index, $newval) will change an existing cache value or create a new cache entry

<?php
$cache
= new \CachingIterator(
new
\ArrayIterator(['a', 'b', 'c', 'd']),
\CachingIterator::FULL_CACHE);

$shortRange = range(0, 1);

foreach (
$shortRange as $index) {
$cache->next();
}

echo
PHP_EOL . 'The cache' . PHP_EOL;
var_export($cache->getCache());
echo
PHP_EOL;

echo
$cache->offsetSet('0', 'manual change') . PHP_EOL;
echo
$cache->offsetSet('3', 'manual entry') . PHP_EOL;
?>

The cache
array (
0 => 'a',
1 => 'b',
)

The cache
array (
0 => 'manual change',
1 => 'b',
3 => 'manual entry',
)

There is no requirement that the offset exist in the inner iterator, or that the offset exists in the cache.

<?php
$cache
= new \CachingIterator(
new
\ArrayIterator([]),
\CachingIterator::FULL_CACHE);

echo
$cache->offsetSet('22', 'manual entry') . PHP_EOL;

echo
PHP_EOL . 'The cache' . PHP_EOL;
var_export($cache->getCache());
echo
PHP_EOL;

print_r("cache offset '22' " .
(
$cache->offsetExists('22') == 1
? 'exists'
: "doesn't exist"
) . PHP_EOL);
?>

The cache
array (
22 => 'manual entry',
)
cache offset '22' exists
To Top