С ООП всё, более или менее, понятно. PHP изначально был процедурным языком и ни о каком ООП в нём речи не шло. Да и сейчас в версии 5.1 часть парадигм ООП не полностью поддерживается или поддерживается с помощью всевозможных "костылей" выдаваемых за преимущества PHP.
Например в PHP нет т.н. акцессоров и мутаторов, точнее они "как бы" есть, предлагается пользоваться следующей конструкцией:
<?php
class MyClass {
private $properties;
function __set($name, $value) {
echo "задание нового свойства $name = $value";
$this->properties[$name]=$value;
}
function __get($name) {
echo "чтение значения свойства ", $name;
return $this->properties[$name];
}
}
$obj = new MyClass;
$obj->property = 1; // Выводит "задание нового свойства property=1"
$a = $obj->property; // Выводит "чтение значения свойства property"
echo $a; // выводит 1;
?>
Таким методом конечно можно обрабатывать изменения свойств объектов, но для того чтобы заставить класс принимать только нужные (запланированные) параметры придётся писать switch и в нём проверять имена указываемых пользователем параметров, что не слишком то удобно.
А вот со стандартами косорциума W3C всё не так просто. По какой то не ведомой мне причине практически все разработчики плюют на эти стандарты и воротят ТАКОЕ, что хватаешься за голову.
Вроде бы HTML все в школе/техникуме/институте изучают, да и W3C на месте не сидит, создавая для разработчиков всякие валидаторы, обнаруживающие ошибки в гипертексте странички и подробно разбирая каждую в соответствии со стандартом. В инете полно русско-язычных (и не только русско) ресурсов с подробным объяснением всех этих стандартов. И тем не менее разработчики продолжают испытывать браузеры на прочность своим бредом в гипертексте и жабаскрипте. Просто ради интереса зайдите вот сюда -> http://validator.w3.org/check?uri=http%3A%2F%2Fwww.lastfm.ru%2F&charset=%28detect+automatically%29&doctype=Inline&group=0&user-agent=W3C_Validator%2F1.654 и обалдейте от количества ошибок и варнингов найденных валидатором в коде странички (страничка подвернулась случайно, просто этот сайт упорно отказывается у меня работать под оперой уже в течении двух его версий).
А вот и тест любимого ВКонтакта -> http://validator.w3.org/check?uri=http%3A%2F%2Fvkontakte.ru&charset=%28detect+automatically%29&doctype=Inline&group=0
Причём заметьте, и тот и другой -- являются коммерческими проектами. Про не коммерческий код я вообще молчу...
У Вас кстати тоже ошибок много:
ОтветитьУдалитьhttp://validator.w3.org/check?uri=http%3A%2F%2Fakinfold.blogspot.com%2F2009%2F08%2Fblog-post.html&charset=%28detect+automatically%29&doctype=Inline&group=0 но это все же недостатки blogger`а
Гугл тоже не проходит валидацию (как и яндекс)
Ситуация смахивает на принцип "Стандарты пишутся для того, чтобы их нарушать.".
ОтветитьУдалить