Внимание! Практически весь материал этой лекции был в видеолекции. Если вы всё хорошо усвоили, просто пробегитесь глазами и переходите дальше.

Динамическая типизация

О динамической типизации вы уже слышали. Давайте разберемся на примерах, что это такое на самом деле.
Пусть у нас есть переменная $a, и ей присвоено некоторое значение. Мы выводим на экран значение и тип этой переменной.

<?php
$a = 1 + 1;
echo "1 + 1 is $a\n";
$typea = gettype($a);
echo "Type: $typea \n";?gt

результат работы программы:

Динамическая типизация и передача данных - 1

Теперь напишем программу, в которой переменной $b также присваивается некоторое значение и определяется тип переменной. Обратите внимание: мы добавляем строки, а PHP автоматически превращает их в целые числа:

<?php
$b = "1" + "1";
echo "\"1\" + \"1\" is $b \n";
$typeb = gettype($b);
echo "Type: $typeb \n";
?>

результат:

Динамическая типизация и передача данных - 2

В следующем примере сложим строку с целым числом. Результат записываем в переменную $c и определяем ее тип:

<?php
$c = "1" + 1;
echo "\"1\" + 1 is $c \n";
$typec = gettype($c);
echo "Type: $typec \n";
?>

результат:

Динамическая типизация и передача данных - 3

PHP вновь преобразовал строку в целое число!

И, напоследок, запишем результат сложения двух символов в переменную $d и проверим, какой тип будет у результата:

<?php
$d = '1' + (double)'1';
echo "'1' + '1' is $d \n";
$typed = gettype($d);
echo "Type: $typed \n";
?>

результат:

Динамическая типизация и передача данных - 4

Указав (double) перед вторым операндом, мы «заставили» PHP превратить его не в целое число, а в число с плавающей точкой. Вот почему в результате мы получили double.

Передача данных в PHP

Вы уже слышали, что в HTTP есть два основных способа передачи данных между клиентом и сервером: методы GET и POST. Метод GET передает данные через URL, а POST — через тело HTTP-запроса.

Приведем пример. Создадим простую форму для ввода имени и возраста пользователя. После нажатия на кнопку форма отправляет данные на сервер с помощью POST-запроса.

<form action = "action.php" method = "post">
  <p> Your name: <input type = "text" name = "name" /> </p>
  <p> Your age <input type = "text" name = "age" /> </p>
  <p> input type = "submit"> </ p>
</form>

Данные, передаваемые с помощью метода POST, PHP сохраняет в специальный ассоциативный массив $ _POST, в котором ключи — имена параметров. Так что мы можем получить к ним доступ следующим образом:

Hi <?php echo htmlspecialchars ($ _ POST [ 'name']); ?>
Your are <?php echo (int) $ _ POST [ 'age']; ?> Years old.