308PHP шаг за шагом,глава-2

увлечения и хобби Богданова Игоря, для всех самоделкиных

Поиск
 
 

Результаты :
 

 


Rechercher Расширенный поиск

Талисман 2021 года

гороскоп
Гороскопы и Сонники
⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂Погода
!!!Погода в Рощино

влажность:

давление:

ветер:

⁂⁂
Похожие темы
Социальные закладки
Социальные закладки reddit      

Поместите адрес форума Песочница Увлечённых Самоделкиных в редакции Гарика на вашем сайте социальных закладок (social bookmarking)

Андрей Щедрин рулит...index.php (336×448)Ремонт ГБЦ на Дельте=и ЛеночкаPHP шаг за шагом,глава-2 0_fcbb3_a46da45a_XXXL
Посмотреть на Яндекс.ФоткахPHP шаг за шагом,глава-2 0_fcbbc_adb6f71f_M
Посмотреть на Яндекс.Фотках
Фото131.jpg 110kv Фото129.jpg
моя фея

и ДЖИН

фортуна

Вы не подключены. Войдите или зарегистрируйтесь

PHP шаг за шагом,глава-2

Перейти вниз  Сообщение [Страница 1 из 1]

1PHP шаг за шагом,глава-2 Empty PHP шаг за шагом,глава-2 Вт Окт 29 2013, 00:02

Gor

Gor
Admin

HTTP Cookies
В PHP реалиован также простой способ работы с куками. С помощью функции SetCookie() можно их устанавливать, получать значения, как и в случае с формами - по имени переменной. В случае, если вы ожидаете получить несколько значений от куки имеет резон использовать в качестве имени переменной - массив. Как в следующем примере:

SetCookie ("MyCookie[]", "Testing", time()+3600);


Существует только одно небольшое ограничение. Так как куки - это часть HTTP заголовка их следует посылать самыми первыми. То есть грубо говоря, ваш скрипт должен начинаться с установки куки, а потом уже заниматься выводом html кода. Еще один пример, уже полноценного счетчика:

$Count++;

SetCookie ("Count", $Count, time()+3600);

SetCookie ("Cart[$Count]", $item, time()+3600);


      

Переменные окружения
И тут все так же просто. Хотите узнать домашний каталог? В юникс-системах это обычно переменная окружения с именем HOME. Так узнавайте:

echo $HOME;


Вы также можете работать с переменными окружения через функции getenv() и putenv()

КОНСТАНТЫ
Вы можете использовать не только переменные, но и константы с помощью функции define(). Взгляните на следующий пример:

define("CONSTANT", "Hello world.");

echo CONSTANT;


обратите внимание на то, что перед именем константы не пишется символ переменной $ и это правильно.
Список предопределенных констант:



  • __FILE__ - Имя файла выполняемого скрипта.

  • __LINE__ - Количество линий, интерптетированных на данный момент в этом скрипте.

  • PHP_VERSION - Тут хранится версия PHP. Например: \'3.0.8-dev\'.

  • PHP_OS - Имя операционной системы, на которой выполняется PHP-скрипт.

  • TRUE - Истина.

  • FALSE - Ложь.

  • E_ERROR - Описывает случившуюся ошибку, после которой продолжение работы невозможно.

  • E_WARNING - Описывает ошибку, после которой продолжается выполнение скрипта.

  • E_PARSE - Описывает синтаксическую ошибку, при разборе интерпретатором текста скрипта.

  • E_NOTICE - Просто какое-то сообщение от интерпретатора. Возможно ошибка, а возможно и нет.

Вот и все о константах и переменных. Со следующего шага займемся операторами и выражениями.


Программируемый калькулятор.
Сегодня рассмотрим все возможные операции на всеми возможными типами переменных и их значениями.

АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
Арифметических операций в PHP всего пять, вот они:

$a + $b

$a - $b

$a * $b

$a / $b

$a % $b


Я думаю здесь все ясно. Ну, может только поясню последнюю операцию, результатом ее выполнения будет остаток от деления $a на $b.

СТРОКОВЫЕ ОПЕРАЦИИ
Ха! А здесь и того меньше! Чисто строковой операцией считается операция сложения двух строк. Причем выглядит она довольно необычно, но практично:

$c = $a  .  $b;


То есть символом этой операции является точка. А результатом ее выполнения будет обыкновенная строка, состоящая из $a и $b.

ОПЕРАЦИЯ ПРИСВАИВАНИЯ
Ну, тут вообще ничего сложного, она всегда одна, это знак \'=\' и естественно этот знак означает, что переменной слева от него будет присвоено значение, полученное в результате выполнения каких либо операций или переменной/константы с правой стороны. Причем тут возможны некоторые С++-ные варианты, как-то:

$a = ($b = 4) + 5; // $a будет равна 9, а $b 4.

$a += 5; // аналогично  $a = $a + 5;

$b = "Привет ";

$b .= "всем!"; // аналогично $b="Привет всем!"



ДВОИЧНЫЕ ОПЕРАЦИИ
Аа... и тут вообщем-то ничего нового:



  • $a & $b - Побитовое И (AND)

  • $a | $b - Побитовое ИЛИ (OR)

  • ~ $a - Исключающее ИЛИ (XOR)

  • $a << $b - Сдвиг влево на $b битов

  • $a >> $b - Сдвиг вправо на $b битов


ЛОГИЧЕСКИЕ ОПЕРАЦИИ
Все тоже...



  • $a and $b - И (AND)

  • $a && $b - Тоже самое, что и предыдущее

  • $a or $b - Или (OR)

  • $a || $b - Тоже, что и предыдущее

  • $a xor $b - Исключающее ИЛИ(XOR)

  • ! $a - Инверсия (NOT)


ОПЕРАЦИИ СРАВНЕНИЯ
Здесь будет что-нибудь новое или нет? Даже комментировать эти операции не буду...





  • $a == $b


  • $a != $b


  • $a < $b


  • $a > $b


  • $a <= $b


  • $a >= $b

В PHP существует также, как и в C++, тринарный оператор \'?:\'. Кто незнает - объясню на примере:

$res = (expr1) ? (expr2) : (expr3);


Результатом этой операции будет значение (expr2), в том случае, если expr1==1 и значение expr3 в противном случае. Где все эти expr1, expr2, expr3 - являются переменными/константами или математиескими выражениями. Такая запись по сути своей аналогична следующей:

if (expr1) $res=(expr2); else $res=(expr3);


но естественно более короткая.
А собственно об этом и все. Мы рассмотрели все операции, присутствующие в PHP. Следующим шагом рассмотрим управляющие структуры (или их еще можно назвать командами).


Поуправляем?
Мне кажется не стоит попусту лить воду и описывать тут и так всем известные из других языков программирования структуры управления. Вместо этого я приведу их полный список и все методы их использования.

Оператор IF
Структура:

if (выражение)

блок_выполнения

Пример использования:

if ($a > $b)

   print "a больше, чем b";

if ($a > $b){

   print "a больше, чем b";

   $b = $a;

}



Оператор ELSE
Пример использования:

if ($a > $b) {

   print "a больше, чем  b";

} else {

   print "a не больше, чем b";

}



Оператор ELSEIF
Интересный оператор. Он применяется в случае, когда вам необходимо использовать IF сразу после ELSE. Пример использования:

if ($a > $b) {

   print "a is bigger than b";

} elseif ($a == $b) {

   print "a is equal to b";

} else {

   print "a is smaller than b";

}



Оператор if(): ... endif;
Тоже довольно необычная структура. Смысл ее в том, что если условие, записанное в круглых скобах оператора IF оказалось истинным, то будет выполняться весь код, начиная от двоеточия \':\' до команды ENDIF;
Пример использования:



A = 5




Или вот еще с использованием вышеописанного оператора ELSEIF

  if ($a == 5):

     print "a equals 5";

     print "...";

elseif ($a == 6):

     print "a equals 6";

     print "!!!";

else:

     print "a is neither 5 nor 6";

endif;



Оператор WHILE
      
Структура:

while (выражение): блок_выполнения ... endwhile;
И примерчик:

$i = 1;

while ($i <= 10) {

    print $i++;  

}


Оператор DO...WHILE
Вообщем-то ничего необычного - цикл, как цикл. Выполняется блок выполнения до тех пор, пока справедливо выражение. Структура:

do блок_выполнения while (выражение);



Оператор FOR
Точно такой-же цикл как и в C++. Структура:

for (выражение1; выражение2; выражение3)

   блок_выполнения

Хотя - нет. Есть в PHP еще одно дополнение. Структура:

for (выражение1; выражение2; выражение3):

   блок_выполнения; ...; endfor;

Обратите внимание, на двоеточие перед блоком выполнения.

Оператор break
Старо как мир. Этот оператор позволяет выскакивать из любого цикла (for, while, do...while) до окончания его выполнения. Пример:

$i = 0;

while ($i < 10) {

    if ($arr[$i] == "stop") {

        break;

    }

    $i++;

}

<

Оператор continue
Тоже ничего нового. Этот оператор позволяет пропустить дальнейшее действия блока_выполнения любого цикла и продолжить выполнение с нового круга. Пример:

while (выражение) {

  if (выражение2)

      continue;

  действие;

};

Такая програма аналогична следующей, без использования continue:

while (выражение) {

  if (!выражение2)

  действие;

  };


Оператор switch
Часто очень необходимый оператор выбора. Хотя все его и так знают, попробую представить ясный пример. Допустим у вас есть следующий участок в программе:

if ($i == 0) {

     print "i равно 0";

} else

if ($i == 1) {

     print "i равно 1";

} else

if ($i == 2) {

     print "i равно 2";

} else

     print "ни одно условие не прошло"


Сэкономить время выполнения данного участка, а также представить его более логичным способом поможет нам этот оператор. Следующий пример совершает действия, аналогичные предыдущему, но в более красивой форме:

switch ($i) {

     case 0:

         print "i равно 0";

         break;

     case 1:

         print "i равно 1";

         break;

     case 2:

         print "i равно 2";

         break;

     default:

        print " ниодно условие не прошло"

}


В таком представлении есть и еще одно преимущество. Если вы не поставите оператор break, например, перед case 1:, то в случае, когда $I будет равен нулю после вывода на экран сообщения об этом программа пойдет дальше и выведет также сообщение о том, что $I равна еще и 
Код:
1
[color][font]
 и только после, встретив 
[/font][/color]
Код:
break;
[color][font]
продолжит свое выполнение за пределами switch[/font][/color]

Оператор require
Этот оператор действует примерно так-же как и #include в C++. Файл, указанный в кавычках включается в скрипт и выполняется, но только однажды. В файле, включаемом оператором require резонно хранить какие-то данные, необходимые для многих скриптов и соответственно влкючать его в эти "многие" скрипты. Структура его такая:

require \'header.inc\';



Оператор include
Структура:

include \'func.inc\';
Этот оператор позволяет включать код, содержащийся в указанном файле (func.inc в нашем случае) и выполнять его столько раз, сколько программа встречает этот оператор. То есть. Например, в файле func.inc у нас хранится программа вывода на экран определенных параметров. Ну и каждый раз, когда нам нужно будет выводить эти параметры мы будем вставлять в текст нашей основной программы include \'func.inc\', то есть это в принципе тоже самое, как если-бы мы везде в таких случаях вставляли бы текст, содержащийся в файле func.inc
Обратите внимание. Разница между include и require довольно существенная, поэтому поэксперементируйте с ними сами, если вы ее так и не усмотрели.
Ну вот и все. Надеюсь это пригодилось.


И снова PHP - продолжим, или галопом по Европам!
Итак, описание основных конструкций языка (за исключением классов - о них позже) сделано! Теперь следует попрактиковаться на реальном проекте. Но прежде все же надлежит уделить внимание некоторой рутине - хотя бы бегло рассмотреть основной набор функций языка. Большая часть этих функций находится в подключаемых модулях, которые собираются во время линковки интерпретатора (под win32 наборы функций выполнены как dll-и). Исключения составляют некоторые особо популярные группы функций, встроенные в ядро интерпретатора (встраиваемость зависит от версии PHP). Например, в PHP версии 4 функции доступа к  MySQL встроены в интерпретатор.
Под рассмотрение (причем весьма беглое) подпадет некоторое подмножество функций. Я исключу из рассмотрения функции, специфичные для SQL-серверов (кроме, MySQL - именно его мы будем использовать в наших проектах, а работа с остальными SQL-серверами выполняется аналогичным образом), и некоторые другие из числа редкоиспользуемых (мною не используемых? Wink.
Кроме того, я еще раз подчеркну - обзор будет весьма беглым. Подробнее разбирательством с возможностями PHP мы займемся по ходу работы над проектами.
Однако, приступим.



  1. Функции, специфичные для Apache-сервера я пока опускаю, т.к. под win32 они не идут (если я правильно понял readme.txt из дистрибутива PHP, то и не должны идти - под win32 PHP живет в CGI-выполняемом режиме, а не как модуль apache). Под *nix-ом я пока проверить не имею возможности. Подождем до лучших времен.

  2. Функции работы с массивами. Эта группа одна из самых многочисленных (если не самая многочисленная). Причем под PHP версии 4 она раза в два больше, чем под 3-й версией. Базовыми для обеих версий можно считать функцию конструирования массива array(), функции сортировки (штук 9), функции навигации по массиву (перемещение внутреннего указателя - подробности в следующих шагах), информационные функции (количество элементов массива и некоторые другие), выборка данных. Как я уже сказал, в 4-й версии добавлена большая группа функций array_xxxxx(), где xxxxx - предназначение. Например, array_push() добавляет элемент в конец массива. Эта группа отвечает за сравнения массивов, множественные операции (объединение, пересечение, разность и пр.), добавление/удаление элемент и некоторые другие операции.

  3. 4 функции работы со словарем.

  4. Математические функции над числами произвольной точности.

  5. Функции работы с календарями.

  6. Поддержка COM-объектов на win32-платформе.

  7. В 4-й версии добавлены функции получения информации о классах в PHP

В следующем шаге мы продолжим беглый обзор функций PHP. А сейчас в качестве постскриптума
хотелось бы сказать вот о чем:
В фидошной конференции по PHP на днях пробегала такая ссылка: http://it.sinor.ru/?isnum=4. Автор в этой статье описывает метод установки PHP как модульApache под win32. К сожалению мой апач обиделся до глубины души от предложения загрузить в качестве модуля php4apache.dll. А жаль. Прийдется ставить линукс. В прочем, может, у меня просто руки ни к тому месту прикручены? Wink
Далее. Опять же на днях (вот везет!) попался мне один чудный сайт "Опыты" (http://exper.ural.ru). С огромным удовольствием прочитав его содержимое, я наткнулся на статью "Использование транслятора XML в PHP.", которая  сильно повлияла на мои планы по дальнейшим шагам. Дело в том, что, используя функции
XML-парсинга можно разрабатывать сайт на XML, а на выходе получить обычный HTML-файл. Что это дает? Самодокументируемый код, возможность генерить браузерозависимый код на сервере (а не тащить кучу кода на клиентскую машину и делать JavaScript-овые проверки версии браузера - на этом сайте, кстати, много материала посвящено различиям в интерпретации HTML- и JavaScript-кода браузерами IE и NN) и другие приятности. Мы в дальнейшем еще вернемся к теме XML.
Еще одна новость - издательство "Символ" решило учинить и на нашей улице праздник! (Не ищите на их сайте информацию об этих новинках - ее там нет! Я ничего не понимаю в их маркетинге.) На днях (опять же!) к нам пришла по почте книга, к которой прилагался рекламный буклет с планами издательства "Символ". Вот что я там узрел из их планов на конец этого - начало будущего года. Во-первых, Хариш Рават и др. Профессиональное программирование на PHP (!). 1100 страниц (!!). Я плакал ! Wink
От O\'Reilly: Стивен Спейнауэр. Справочник вебмастера. 2-е издание. Брэт МакЛафлин и др. Java и XML.
Ну наконец-то! Вот ОНА: Ларри УОЛЛ. Программирование на Perl. 3-е издание. 1200 страниц (!!!)
Да-да. Та самая кэмэлбука! Далее. Аллигатор (классное имя Wink Декарт (и фамилия Wink и др. Программирование на Perl DBI. Дэвид Бланк-Эдельман и др. Perl для системного администрирования. Скотт Гуэлич. CGI-программирование на Perl.
Фух. Рука бойцов колоть устала.


Заканчиваем обзор.

http://igorb962007.ya.ru/

Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения