Я не думаю, что любой ответил, "почему" часть все же..., таким образом, здесь идет. Причина, "почему" "необходимо" использовать Collection<T>
вместо List<T>
, состоит в том, потому что, если Вы представляете List<T>
, тогда любой, кто получает доступ к Вашему объекту, может изменить объекты в списке. Принимая во внимание, что Collection<T>
, как предполагается, указывает, что Вы заставляете свое собственное "Добавить", "Удалите", и т.д. методы.
Вы, вероятно, не должны волноваться об этом, потому что Вы, вероятно, кодируете интерфейс для себя только (или возможно несколько коллег). Вот другой пример, который мог бы иметь смысл.
, Если у Вас есть общедоступный массив, исключая:
public int[] MyIntegers { get; }
Вы думали бы, что, потому что существует только "получить" средство доступа, которое никто не может смешать со значениями, но это не верно. Любой может изменить значения внутри там точно так же, как это:
someObject.MyIngegers[3] = 12345;
Лично, я просто использовал бы List<T>
в большинстве случаев. Но если Вы разработаете библиотеку классов, которую Вы собираетесь выделить случайным разработчикам, и необходимо полагаться на состояние объектов... тогда, то Вы захотите сделать свой собственный Набор и заблокировать его по сравнению с там:)
Вот базовая структура для обхода каталога и выполнения каких-либо действий с файлами изображений (учитывая 'images'
- это каталог в том же каталоге вашего скрипта)
$image_types = array(
'gif' => 'image/gif',
'png' => 'image/png',
'jpg' => 'image/jpeg',
);
foreach (scandir('images') as $entry) {
if (!is_dir($entry)) {
if (in_array(mime_content_type('images/'. $entry), $image_types)) {
// do something with image
}
}
}
Отсюда вы можете отправлять изображения непосредственно в браузер, генерировать теги для HTML-страницы или создавать эскизы с помощью функций GD и сохранять их для отображения.
Думаю, это может вам помочь!
<?
$string =array();
$filePath='directorypath/';
$dir = opendir($filePath);
while ($file = readdir($dir)) {
if (eregi("\.png",$file) || eregi("\.jpg",$file) || eregi("\.gif",$file) ) {
$string[] = $file;
}
}
while (sizeof($string) != 0){
$img = array_pop($string);
echo "<img src='$filePath$img' width='100px'/>";
}
?>
Взгляните на:
Для изменения размера изображений прямо из PHP: