Вопрос-Ответ по ООП PHP

Печать RSS
2709


Пацак
0
да. Или лучше $q смени на $total.

★☆Pro100Поэт☆★
0
151. Фанат, Изменение авторитета
Ваш положительный голос за пользователя Фанат успешно оставлен!
В данный момент его авторитет: 15
Всего положительных голосов: 17
Всего отрицательных голосов: 2

Спасибоsmile
А

Оранжевые штаны
0
Может кто расскажет какими оо-паттернами и как пользовался?
А

Пришелец
0
Вопрос автора в первом посте огорчил... Nominal огорчил ещё больше. Дальше не стал читать... Мдааа, здесь как всегда умом не блещут =) Стыд (facepalm)
А

Оранжевые штаны
0
Честно говоря да, не встречал еще среди вап-разработчиков хороших ооп программистов
P

Землянин
0
По поводу ссылок. Насколько я знаю, в php все типы передаются почти как ссылки, а клонируется только при модификации данных. Допустим у нас есть большой массив с кучей данных. Мы передаём его в функцию обычным способом (не по ссылке), чтобы выбрать из него только уникальные значения в цикле и вернуть их. При этом этот огромный массив в памяти не создаст копию себя. Переменная копируется в памяти только если происходит модификация данных. То есть если наша функция по ходу работы начнёт вносить в этот большой массив какие-то изменения, тогда создастся его копия в памяти.

Уже сейчас попытка передать переменную по ссылке ololo(&$a); вызывает ошибку. И это правильно. Потому что:
1) Если мы хотим передать переменную по ссылке внутрь функции, чтобы не делать копию данных в памяти, то в этом нет смысла, так как копия данных итак не создастся, если тело функции написано правильно и не модифицирует переданный массив (а если и модифицирует, то вероятно затем вернёт его, в любом случае автор функции сделал это по каким-то убеждениям, быдлокодеров не в счёт).
2) Мы можем (и не должны с точки зрения инкапсуляции) не знать как устроена функция внутри, и что она делает с получаемыми данными. Если функция не объявлена как function ololo(&$a){, то нефиг в неё и пытаться передавать переменную по ссылке, иначе она может нам изменить данные в ней. А вдруг переменную мы будет после вызова функции использовать где-то ещё?
А

Оранжевые штаны
0
Элементарные типы передаются по значению (копируются), иначе было бы накладно
P

Землянин
0
157. Bashka, ну я говорил применительно к массивам в первую очередь. Они копируются только при модификации. Насчёт строк не уверен. Ну а числа скорее всего всегда копируются.
А

Оранжевые штаны
0
Всегда считал и продолжаю считать даже в отношении пхп что массив это не элементарный тип данных. Это базовая конструкция языка, но более сложная нежели элементарные типы

Лузер PHP
0
144. PraeSiDio_DeI,
if (!$total) 
{ 
  echo "Ошибка при обращении к блоку позиций каталогов"; 
  echo "<pre>"; 
  echo $q; 
  exit(); 
}

напиши таким образом что выдает?
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск