68926

Змінні і типи даних

Лекция

Информатика, кибернетика и программирование

Чому я спожив вираз Практично у всіх Існують і такі мови в яких немає змінних як таких. На щастя РНР не відноситься до таких мов він найзвичайніша мова з погляду наявності змінних. Всі дані з якими працює програма зберігаються у вигляді змінних.

Украинкский

2014-09-27

56.5 KB

0 чел.

Лекція № 2

Тема:  Змінні і типи даних

План

  1.  Правила задання змінних
  2.  Типи даних
  3.  Функції визначення і завдання типу змінних.
  4.  Логічні змінні і їх особливості в РНР

Практично у всіх мовах програмування є таке поняття, як змінна. Чому я спожив вираз «Практично у всіх»? Існують і такі мови, в яких немає змінних, як таких. На щастя, РНР не відноситься до таких мов — він найзвичайніша мова, з погляду наявності змінних.

Змінна — це область оперативної пам'яті, доступ до яких здійснюється по імені. Всі дані, з якими працює програма, зберігаються у вигляді змінних.

Правила задання змінних

Як вже наголошувалося вище, в РНР обов'язково перед ім'ям змінної потрібно ставити знак долара — так інтерпретатору легше виділити змінні з «сірої маси» тексту програми.

У офіційній документації РНР сказане, що імена змінних можуть складатися не тільки з латинських букв, але з будь-яких символів, код яких більше 127. Це означає, що імена змінних можуть містити російські букви. Проте я настійно раджу вам не використовувати російськомовні імена — адже в різних кодуваннях букви кирилиці мають різні коди.

Визначимо правила завдання змінних в РНР:

Ім'я змінної повинне починатися із знаку долара $.

Ім'я змінної не повинне містити ніяких інших символів, окрім символів латинського алфавіту, цифр і знаку підкреслення. Якщо ви використовуватимете це правило, ви істотно полегшите собі життя.

Імена змінних в РНР, як і в C, чутливі до регістра символів, тобто змінні $а і $А  — це здійснено разні змінні.

Оголошувати змінну можна в будь-якому місці програми, але до місця першого її використання.

При оголошенні змінних можна не скупитися — оголошуйте стільки, скільки вам потрібно. Звичні методи оптимізації, які застосовувалися 20 років тому (наприклад, надмірна економія пам'яті — чим менше за змінні використовує програма, тим краще), за часів перших комп'ютерів, не спрацюють: ваша програма не працюватиме швидше, якщо ви будете в збиток власному комфорту використовувати одну змінну замість 5. До того ж можна наробити помилок, які дуже важко знайти.

Типи даних

Змінні в РНР можуть містити все, що завгодно — будь-яку інформацію. Виняток становлять тільки константи, які можуть містити тільки число або рядок.

Такого поняття як покажчик (це така змінна, яка містить не конкретне значення, а указує на область пам'яті, де знаходиться це значення), добре знайомого нам з мови C, взагалі не існує. При привласненні змінна копіюється «один в один», яку б структури вона не мала. Припустимо, що у нас є дві змінні - масив і рядок. Якщо ми першою змінною привласнимо значення другій, то наш масив буде назавжди втрачений, а змінна, яка містила масив, міститиме рядок — це і означає, що копіюється не тільки значення змінної, як в інших мовах, але і структура. Правда, починаючи з 4-ої версії, в PHP з'явилися жорсткі і м'які посилання, але про них   ми поговоримо пізніше.

Розглянемо наступне оголошення змінних:

$а   =   10;

$А   =   "Hello";

Як ви бачите, при оголошенні змінних ми не вказали їх тип. Вибір типу здійснюється самим інтерпретатором. Проте іноді PHP може помилитися і зіставити змінній неправильний тип. Тому потрібно задати тип явно. Про те, як це зробити, ми поговоримо трохи пізніше, а поки розглянемо основні типи змінних.


Типи змінних в PHP

Тип змінної

Опис

integer

Ціле число. Діапазон значень: від -2 147 483 648 до 2 147 483 647 (32 біта). Даний тип відповідає типу long int в мові С (longint - в Pascal)

double

(або float)

Дійсне число дуже великої точності

string

Рядок. Це дуже важливий тип, оскільки в більшості випадків сценарії займаються формуванням рядків.

array

Масив

object

Об’єкт. Мова РНР підтримує об’єкти. Доступ до елементів об’єкту відбувається за допомогою оператора ->

bool

Логічний тип даних. Змінні цього типу можуть приймати тільки одне з двох значень: true (істина) або false (брехня)

Функції визначення і завдання типу змінних

Мову PHP   надає багато засобів для визначення типу змінних. Ви можете використовувати цілих сім функцій для визначення типу:

Is_int(Sx) або is_integer(Sx) — повертає   true, якщо передана змінна — ціле число.

Is_double($x) або is_float(Sx) — повертає true, якщо передана змінна — дійсне число.

is_string(Sx) — повертає true, якщо передана змінна — рядок.

is_array(Sx) — повертає true, якщо передана змінна — масив.

is_object($x) — повертає true, якщо змінна є об'єктом.

is_bool(Sx) — повертає true, якщо змінна оголошена, як логічна.

gettype(Sx) — повертає рядки, відповідні типу змінної:   integer,     double,     string,     object,     array,     bool  або unknown   type, якщо неможливо визначити тип (коли тип змінної не будовується в PHP, а додається за допомогою модулів, що розширюють можливості мови).

Якщо PHP неправильно визначив тип змінної, можна вказати його явно. Для цього використовується функція settype(Sx, Stype), де $type — це один з рядків, що повертаються функцією gettype(). Наприклад:

settype($x,"double");

Функція повертає значення false, якщо неможливо привести тип змінної $х до вказаного типу $type.

Логічні змінні і їх особливості в PHP

Напевно, ви відмітили, що більшість функцій для визначення типу повертають логічне значення true або false (всі функції, окрім gettype()). Зараз самий час поговорити про логічні змінні і пов'язаних з ними «підводними каменями».

У PHP істиною є не будь-яке рівне нулю число, будь-який непорожній рядок, значення true. Значення false, порожній рядок, нуль — це брехня. Для того, щоб зрозуміти це проведемо ряд експериментів з логічними змінними. При цьому ми небагато забіжимо вперед і використовуватимемо умовного оператора If. Проте, якщо ви знайомі з якою-небудь алгоритмічною мовою (Сі, Паскаль і т.п), то без зусиль зрозумієте сенс оператора. Тим паче, що текст прикладів супроводжується докладними коментарями. Інакше ви можете повернутися до цього пункту пізніше.

Отже, створіть сценарій logical.php:

<? echo   false; echo   true; ?>

Перший оператор виводить порожній рядок, тобто нічого не виводить, а другою — виведе 1. Вище було сказано, що ненульове значення приймається, як істина.

У використанні логічних змінних в PHP є ще одна особливість. Якщо в операторах порівняння (= =, !=, <,") один тип є логічним, то і другий також сприймається, як логічний. Модифікуємо наш сценарій так:

<?

$х=10;

if ($х==1) echo " Змінна рівна l\n";

if ($x==true) echo "Змінна рівна True\n";

У першому рядку змінної $х було привласнено значення 10. Потім $х порівнюється з 1 і якщо $х рівне 1, то виводиться рядок «Змінна рівна 1». Потім значення змінної $х порівнюється із значенням True. І якщо $х рівне true, то виводиться рядок «Змінна рівна True». Виходячи з приведеного вище твердження, повинна бути виведеною тільки другий рядок. Так воно і відбувається.

Розглянемо ще один приклад:

<?

$х   =   100;

$у   =   true;

echo   "x=   $х\ п";

echo   "y=   $у\ п";

if    ($x==$y)    echo   "X=Y";

?>

Ось тут вже зовсім смішна ситуація: спочатку програма повідомляє, що X = 100,   Y = 1, а потім, що X = Y.


 

А также другие работы, которые могут Вас заинтересовать

75497. Ввод начальных остатков в ИС «1С: Предприятие» 21 KB
  Для ввода остатков в плане счетов конфигурации предусмотрен специальный вспомогательный счет 00. Он используется для корреспонденции с дебетом или кредитом того счета, по которому необходимо ввести остаток.
75498. Документация в БУ ИС 1С 22.5 KB
  Для автоматизации процесса используются следующие виды первичных стандартных документов по учету: документы движения материальных ценностей приходный ордер приемный акт накладная акт на списание требование лимитная карта...
75499. Принципы программирования дополнительных задач в ИС 1С 23 KB
  Наследование есть свойство объектов порождать своих потомков. Полиморфизм это свойство родственных объектов т. объектов имеющих одного общего родителя решать схожие по смыслу проблемы разными способами. Это и называется полиморфизмом объектов.
75500. Типы данных, используемые при программировании в ИС 1С 30.5 KB
  Типы данных используемые при программировании в ИС 1С В системе поддерживаются базовые и агрегатные типы данных. Агрегатные типы данных – это специализированные типы данных предназначенные для работы с объектами 1С: Предприятия. Агрегатными типами данных называются следующие типы данных: Константа – средство работы с постоянными или условно постоянными значениями. Справочник – средство для ведения списков однородных элементов данных.
75501. Управляющие оператора, используемые для при программировании в 1С 25 KB
  Для управления логикой выполнения программы используются логические выражения и управляющие операторы. Логическое выражение записывается с помощью символов сравнения
75502. Индивидуальный пользовательский интерфейс (1С) 107 KB
  Индивидуальный пользовательский интерфейс 1С Индивидуальный пользовательский интерфейс включает расширенное меню и панели инструментов настроенные на работу только с той информацией доступ к которой разрешен набором прав пользователя. Внешний вид списка пользовательских интерфейсов зависит от положения переключателей Список Таблица в меню Действия главного меню Конфигуратора. Для создания нового пользовательского интерфейса необходимо выбрать пункт Новый в меню Действия главного меню конфигуратора рис. не содержит меню и...
75504. Редактор панелей инструментов (1С) 45 KB
  Редактор панелей инструментов 1С Для вызова редактора панелей инструментов необходимо выделить название интерфейса для которого редактируются панели и в меню Действия главного меню Конфигуратора выбрать пункт Редактировать панели инструментов рис. Окно редактора панелей инструментов Окно редактора состоит из трех основных частей. Слева вверху расположен список панелей инструментов и кнопки для создания переименования и удаления панелей. Слева внизу расположено окно с библиотекой рисунков которые могут быть размещены на кнопках...