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

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

Поиск
 
 

Результаты :
 

 


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

Талисман 2019 года
100 GB Free Backup=/=
гороскоп
⁂⁂⁂⁂⁂⁂⁂Авторадио,⁂ Дорожное Радио,⁂ Радио "DISCO хиты XX века",⁂ Радио "Русский хит",⁂ Радио "Ретро хит",⁂ Радио "Добрый мотив",⁂ "Радио сказка",⁂ Радио "Детский хит"⁂⁂⁂ ⁂⁂⁂⁂
⁂⁂⁂
⁂Погода
Погода в Рощино

влажность:

давление:

ветер:

⁂⁂
Прогнозы и Гороскопы

Прогноз Реймонда Ло на 2019 год Земляной СвиньиКаждый год известный мастер фэн-шуй Реймонд Ло публикует свои прогнозы-предсказания. Они основаны на понимании характера иероглифов, в формате которых в китайском календаре записывается каждый год.

2019 год отмечен двумя иероглифическими знаками - Земля Инь и Свинья. Что же они означают, что принесут эти знаки в 2019 году?

Ниже вы можете ознакомиться с переводом прогноза Реймонда Ло, где он высказывает свое мнение о предстоящих мировых изменениях и перспективах. Подробнее

PHP шаг за шагом,глава-2 F-prognoz-banner=+=
Социальные закладки
Социальные закладки digg  Социальные закладки delicious  Социальные закладки reddit  Социальные закладки stumbleupon  Социальные закладки slashdot  Социальные закладки yahoo  Социальные закладки google  Социальные закладки blogmarks  Социальные закладки live      

Поместите адрес форума Песочница Увлечённых Самоделкиных в редакции Гарика на вашем сайте социальных закладок (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]

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