I'd rewrite the above to avoid the else condition; additionally, _always_ use blocks for conditionals and loops, and the opening brace should be on the same line.

```php
foreach ($this->storages as $storage) {
    if ($storage->isEmpty()) {
        $storagesWithHigherPriority[] = $storage;
        continue;
    }
    $storageValue = $storage->read();
    foreach ($storagesWithHigherPriority as $higherPriorityStorage) {
        $higherPriorityStorage->write($storageValue);
    }
    return false;
}
```

Also, the plural of "storage" is... "storage". I'd rename `storagesWithHigherPriority` to `storageWithHigherPriority`, and rename the `storages` member property to `storage` or `storageChain`.