когда вы делаете $bar->id = 10; вы на лету создаете свойство public $id = 10; класса Bar, которое не имеет ничего общего с private $id = 0; класса Foo. Потому и getId выдает 10 десятки а вот ноль вы не получите из Bar никак. на то он и приватный. И два id в классе это нормально и ничему не противоречит.
на самом деле нет — дело привычки. И, опять же оговорюсь, эти конструкции редки и использовать их стоит лишь тогда, когда выгода от них может перекрыть все недостатки :)
Фабрика чаще применяется для классов, а там она необязательно объявляет внутри себя — может и просто создавать.
Про читабельность согласен, но иногда важнее функциональность :)
проблему уже озвучили — а если нужный тег не встречается в тексте?
Одно из решений (не дающее 100% резульата). Создание каких-либо зависимостей или даже иерархии. Например для тегов водка, бухать, нажраться и пр. родительским тегом будет «пьянка». Однако это здорово усложняет систему и, как уже упомянул, сто процентного результата все равно не дает (плюс неясно как заполнять эти связи).
и чем это удобней? Кода больше — смысл тот же. Опять же про утечки думать надо.
Замыкания очень приятная штука, но все ж не надо их вставлять там, где они не нужны.
он есть в посте. Там два файла parent.tpl и child.tpl в случае инклуда вам бы понадобились хидер и футер, вместо парента. Добавьте еще блок и вам понадобится хидер, футер и миддлер (гыгы).
Ну, честно говоря, никогда не сталкивался с их жесткой необходимостью. Это интересная фишка на заметку, но зачастую она вам не пригодится. Потому она и не получила широкого распространения ;)
Про читабельность согласен, но иногда важнее функциональность :)
Одно из решений (не дающее 100% резульата). Создание каких-либо зависимостей или даже иерархии. Например для тегов водка, бухать, нажраться и пр. родительским тегом будет «пьянка». Однако это здорово усложняет систему и, как уже упомянул, сто процентного результата все равно не дает (плюс неясно как заполнять эти связи).
вот тут уже написали habrahabr.ru/blogs/webdev/38642/#comment_919147
Замыкания очень приятная штука, но все ж не надо их вставлять там, где они не нужны.
function createHelloFunction = function(name) {
а
var createHelloFunction = function(name) {…
Ну и для сохранений между вызовами проще использовать func_name.attr типа
function countIt(reset) {
if (reset ||! countIt.cnt) countIt.cnt = 0;
return countIt.cnt++;
}
Ну а про рациональность списков «Онлайн» тема отдельная. На большинстве сайтов он, конечно же, не нужен.