Вторая попытка написать что-то полезное.
Надеюсь что не последняя
---
Очередная мини-статья расчитана на людей которые уже познакомились с пользовательскими ф-циями в php, так же для осознания материала необходимы и некоторые другие НЕ базовые знания php.
PHP и ООП
Что же это такое? Кому и зачем оно нужно?
Человеческий разум устроен так, что нам сложно осознавать что-либо абстрактное. И это является главной причиной того, что когда программисты начинают говорить терминами ООП, новички перестают понимать о чем речь. На самом деле нужно только правильно зацепиться мыслью за абстрактные понятия "класс", "объект" и прочие вкусности..
Так собственно не откладывая далее саму суть, начнем.
1. Функции
Небольшой откат назад нужен для того, чтобы освежить память о пользовательских функциях. Собственно типичная пользовательская функция выглядит так:
1. DeepVarvar - 12 Ноября, 2011 - 19:30:53 - перейти к сообщению
Сама функция может принимать аргументы, может что-то возвращать в качестве результата, а может принимать в качестве аргумента ссылку на что-либо и изменять значение этого "что-либо". Соответственно существуют все мыслимые и не мыслимые комбинации этих возможностей работы с функциями.
2. Абстракции
Как правило "в жизни" требуется писать не мало кода для какого либо функционала. Однако каждое действие можно разбить на самостоятельные завершенные "события". Если задуматься, то функции решают эту проблему с головой, если каждую описать как завершенное "событие". Да, в общем это неплохо. Написать с десяток функций которые будут работать с базой данных. Действительно, а зачем каждый раз повторять одни и те же действия на разных страницах сайта, или по нескольку раз на одной странице. Например:
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?php
- $result = mysql_query("SELECT name1, name2 FROM supertable");
- if (mysql_num_rows($result) > 0) {
- while ($row = mysql_fetch_assoc($result)) {
- echo '<div>'.$row['name1'].' --- '.$row['name2'].'</div>'."\n";
- }
- }
- ?>
- <div>
- ... какое-то хтмл-***** ...
- </div>
- <?php
- $result2 = mysql_query("SELECT name45, name56 FROM supertable2");
- if (mysql_num_rows($result2) > 0) {
- while ($row2 = mysql_fetch_assoc($result2)) {
- echo '<div>'.$row2['name45'].' --- '.$row['name56'].'</div>'."\n";
- }
- }
- ?>
- <div>
- ... опять какое-то хтмл-***** ...
- </div>
и т.д...
Гораздо удобнее будет отписать все повторяющиеся действия в функциях заранее и просто вызывать их по коду дела, когда будет нужно:
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?php
- // в этом коде нужно описать вообще всю логику страницы
- function query($query_string) {
- $result = mysql_query("$query_string") or die(mysql_error());
- $arr = array();
- if (mysql_num_rows($result) == 0) return null;
- while ($row = mysql_fetch_assoc($result)) $arr[] = $row;
- return $arr;
- }
- $result1 = query("SELECT name1, name2 FROM supertable");
- $result2 = query("SELECT name45, name56 FROM supertable2");
- // вот сейчас закроем тег и все, дальше только хтмл с пхп-циклами вывода
- // Никаких расчетов! Только вывод!
- ?>
- <DOCTYPE ...
- тут вокруг теперь везде ***** и мы к нему готовы и обули болотные сапоги ...
- <?php if ($result1 !== null) {
- foreach ($result1 as $item) { ?>
- <div><?php echo $item['name1']; ?> --- <?php echo $item['name2']; ?></div>
- <?php } } else { ?>
- <h1>Первый запрос ничего не вернул</h1>
- <?php } ?>
- <div>
- ... шлёп, шлёп, хлюп, хлюп ...
- </div>
- <?php if ($result2 !== null) {
- foreach ($result2 as $item) { ?>
- <div><?php echo $item['name45']; ?> --- <?php echo $item['name56']; ?></div>
- <?php } } else { ?>
- <h1>Второй запрос ничего не вернул</h1>
- <?php } ?>
- </html>