Я смотрю учебник SPL и вот код, который меня смущаетЗачем использовать клон ключевое слово здесь
<?php
$directory = new DirectoryIterator('common/images');
foreach ($directory as $file)
{
if($file->isFile())
$files[] = clone $file;
}
echo $files[1]->getFileName();
Если я не использую clone
ключевое слово в цикле Еогеасп, я не могу видеть имя файла. Почему это так, когда я нажимаю весь объект внутри массива $files
.
Благодаря
ОБНОВЛЕНО Часть
Хотя приведенный выше код я должен использовал clone
ключевое слово. На основании нижеприведенного ответа мы используем clone
, чтобы создать копию объекта без ссылки. В этом случае это не является веской причиной. Рассмотрим следующий пример, который не нуждается клон ключевого слова и работает, как ожидалось
<?php
$filesystem = new FilesystemIterator('common/images');
foreach ($filesystem as $file)
{
$files[] = $file;
}
echo $files[0]->getFileName();
Хотя я понимаю вашу логику. Но поскольку я помещал целую переменную $ file в $ files. Разве это не так, как будто нам не нужна копия или ссылка здесь, а фактически новая переменная, которая содержит объект $ file. –
вы можете посмотреть обновленную часть? Я не принял ваш ответ после прохождения этого обновленного примера. –
@RaheelKhan Я обновил его –