68927

Операції над змінними

Лекция

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

Перевірка існування змінної. Знищення змінної. Перевірка існування змінної. Знищення змінної Ви можете запитати а як же арифметичні і інші операції Решта всіх операцій специфічна для конкретного типу змінної.

Украинкский

2014-09-27

43 KB

0 чел.

Лекція № 3

Тема: Операції над змінними

План

  1.  Види операцій.
  2.  Оператор присвоєння.
  3.  Перевірка існування змінної.
  4.  Знищення змінної.

Види операцій

Ми вже розглянули дві найважливіші операції із змінними — визначення і установку типу змінною. Тому нам залишилося розглянути всього три операції:

Присвоєння значення.

Перевірка існування змінної.

Знищення змінної

Ви можете запитати, а як же арифметичні і інші операції? Решта всіх операцій специфічна для конкретного типу змінної. Наприклад, операція множення абсолютно безглузда для двох рядків або числа і рядка.

Проте, PHP є дуже гнучкою мовою і виконує перетворення числа в рядок (і навпаки) непомітно для нас. Коли я говорив, що операція множення безглузда для двох рядків, я був не зовсім має рацію. Виконаєте цей сценарій, і ви переконаєтеся в цьому:

<?

$х   = "10";    //   рядок

$у   = "2";   //   і   це   рядок

echo $х*$у;

?>

Сценарій, замість повідомлення про помилку, виведе на екран число 20. Як бачите, якщо рядок допускає перетворення типу, то PHP працює з рядками, як із звичайними числами.

Оператор присвоєння

Оператор присвоєння дозволяє надати змінній деяке значення. Немає такої мови програмування, в якому не було б оператора присвоєння. Тому я вас сильно не здивую, якщо скажу, що в PHP він теж є:

$х   =   4; $у   =   $х;

Ось, що вам потрібно знати про цього оператора і правила присвоєння:

  •  Змінній можна привласнити: яке-небудь значення; значення, що повертається  функцією;  значення іншої  змінної;  значення виразу ($х + $у * 2 — 7); посилання на іншу змінну.
  •  У PHP немає покажчиків, тому, якщо в змінну $х ви розмістете файл розміром 500 Кб, а потім привласните її змінній $у, то буде створена точна копія змінної $х, яка теж займатиме 500 Кб. Разом у вас в пам'яті буде майже один мегабайт інформації. Це потрібно враховувати при створенні так званих тимчасових змінних. Бажано після закінчення роботи з такою змінною звільнити пам'ять, тобто знищити змінну.
  •  Інтерпретатор сам виконує перетворення типів, але іноді привести тип змінної до іншого просто неможливо. Наприклад, як можна перетворити рядок «1212ro3te» в число?
  •  Як я вже говорив, при привласненні створюється точна копія змінної, копіюється також і тип змінної. Це означає, що якщо ви масиву привласните число, весь масив буде втрачений.

Робота оператора присвоєння складається з двох послідовних етапів:

1.Обчислення виразу, що стоїть в правій частині.

2. Присвоєння змінній, що стоїть в лівій частині, значення, отриманого в пункті 1.

Таким чином, через те, що процес присвоєння складається з двох роздільних етапів, в лівій і правій частині оператора присвоєння може знаходитися одна і та ж змінна. Наприклад: $х  =   $х+4.

Крім того, так само як і в мові Сі, в PHP існує можливість використання операції присвоєння в наступному вигляді: змінна операция=значение.

Наприклад:

$x   +=10;   //   еквівалентно   $х   =   $х   +   10;

$х   *=10;   //   еквівалентно   $х   =   $х   *   10;

Перевірка існування змінної

Перевірка існування змінної — це дуже зручна можливість мови програмування. Ви можете запитати: «А навіщо вона потрібна? Що я не пам'ятаю, оголошував я змінну чи ні?» Я зараз поясню. Пам'ятаєте, я говорив, що змінні може оголошувати самому PHP — при розборі параметрів. Так от, завдяки можливості перевірки існування змінної ви можете перевірити, чи переданий сценарію певний параметр чи ні, а тільки потім починати з ним працювати. Розглянемо два сценарії.

Сценарій 1:

<?

$х   =   $m_name;

?>

Сценарій 2:

<?

if (isset($m_name)) { $x = $m_name;

?>

У першому випадку ми відразу починаємо працювати із змінній. Якщо з яких-небудь причин інтерпретатор не передав сценарію параметр m_name, ми отримаємо повідомлення про те, що змінна не визначена. У другому сценарії ми за допомогою функції isset ($m_name) перевіряємо існування змінної $m_name, а тільки потім починаємо з нею працювати. В результаті ваш сценарій не припинить свою роботу із-за банальної помилки користувача, якщо той забуде ввести своє ім'я.

Звичайно, якщо перевіряти всі передані параметри, наша програма стане набагато «товща» (особливо, якщо параметрів багато). Проте ми можемо поступити простіше. Припустимо, що нам потрібно написати анкету на PHP, що містить ім'я і адресу електронної пошти. Алгоритм нашого сценарію буде таким:

  •  Якщо користувач не передав параметри, означає ми виводимо
    форму анкети.
  •  Якщо параметри передані (про що свідчить наявність змінної кнопки submit), означає можна почати обробку параметрів.

Виходить, що нам досить перевірити тільки один параметр:

<html><head><title>AHKeTa</title></head><body>

<?

if(!isset($go))

{

// змінна go (кнопка) не встановлена, виводимо форму:

echo "<form action=script.php method=post>"; /* Виводиться поля анкети, а потім кнопку go */

echo "<input type=submit name=go value=Send></form>";

}

else {

/* Параметри введені користувачем, починаємо обробку */

}

Перевіривши існування кнопки go, ми починаємо обробку параметрів. У формі, що виводиться, я використовував метод POST. Для РНР-сценаріїв абсолютно немає ніякої різниці, яким методом їм будуть передані параметри, тому з міркувань безпеки краще використовувати метод POST (ніхто із-за спини не побачить, що ввів користувач), та і виглядає він естетичніше (нічого зайвої в рядку адреси не відображається).

Видалення змінних

Щоб не засмічувати пам'ять, можна видалити непотрібні нам змінні. Це можна робити за допомогою функції unset(). Ця функція видаляє вказану в дужках змінну з пам'яті, і програма продовжує виконуватися как-будто ця змінна взагалі не ініціалізувала.

<?

$а = читаем_большой_файл;

обробляємо файл;

unset($a); // звільняємо пам'ять

?>

Ця функція особливо корисна і навіть необхідна при обробці великих об'ємів даних, щоб вони не залишалися в пам'яті комп'ютера і не уповільнювали його роботу.


 

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

81267. Партии в политической системе общества 38.8 KB
  Политические партии с привычными для нас признаками оформленное членство в партии партийные билеты взносы внутрипартийная дисциплина появились в Европе с возникновением массового рабочего движения. Существующие сейчас политические партии по организационной структуре делятся на: организационно оформленные и организационно неоформленные. В партиях первого типа члены партии получают партийные билеты и платят партийные взносы.
81268. Понятие права. Основные концепции правопонимания 41.16 KB
  Основные концепции правопонимания Право один из видов регуляторов общественных отношений; в многотысячелетней истории юриспруденции не раз указывалось что в вопросах о праве следует избегать универсальных определений общепризнанного определения права не существует и в современной науке. Конкретное определение права зависит от типа правопонимания которого придерживается тот или иной учёный то есть его представлений о праве. Различные ученые выделяют различные признаки права однако практически все теории признают следующие признаки: ...
81269. Право в системе социальных норм. Технико-юридические нормы 37.18 KB
  Техникоюридические нормы. Социальные нормы правила регулирующие поведение людей деятельность организаций в их взаимоотношениях. Социальные нормы имеют общий характер регулируют типичные ситуации и рассчитаны на многократное применение. В системе социальных норм выделяют помимо правовых норм: моральные нормы правила поведения с точки зрения добра и зла; религиозные нормы правила поведения регулирующие отношения между людьми через призму божественного начала; корпоративные нормы правила поведения регулирующие отношения людей в...
81270. Теория естественного права 35.42 KB
  В ее основе лежат следующие идей: Политическая и правовая жизнь общества должна соответствовать требованиям естественного права вытекающих из природы человека и гражданина. В этой связи действующее в государстве законодательство призвано закреплять и обеспечивать права и свободы людей обусловленные их естественной природой. Теория естественного права покоится на признании цивилизации которые имеют приоритетное значение.
81271. Историческая школа права 38.03 KB
  Основные положения Представители исторической школы права исходили из консервативного исторического понимания права. Их идеи были своеобразным противопоставлением концепции естественного права являвшейся идеологическим оружием революционной буржуазии. Историческая школа права выступала в защиту феодальных порядков против преобразования существующих отношений с помощью нового законодательства объясняя это тем что право должно складываться исторически.
81272. Социологическая школа права 34.87 KB
  Сторонники социологической школы права считали что действующие правовые акты не всегда адекватны экономическим и социальным условиям. Основные положения социологической теории права сводятся к следующему: Теория подходит к праву не формальноюридически а с позиций реальной жизни. Обращаясь к ней как к источнику права становится возможным понять его сущность.
81273. Психологическая теория права 37.25 KB
  Оригинальную психологическую теорию права выдвинул Лее Иосифович Петражицкий 18671931 профессор юридического факультета Петербургского университета депутат I Государственной Думы от партии кадетов. Его взгляды наиболее полно изложены в книге Теория права и государства в связи с теорией нравственности 1907 г. Интерпретация права с позиций психологии позволяет поставить юридическую науку на почву достоверных знаний полученных путем самонаблюдения либо наблюдений за поступками других лиц.
81274. Нормативистская школа права 35.26 KB
  Теория права должна быть свободной от идеологии и представлять собой чистую науку. Суть нормативистской теории составляют следующие положения: право является пирамидой норм; во главе данной пирамиды стоит суверенная норма определяющая смысл остальных норм конституция; каждая норма в данной иерархии черпает юридическую силу от вышестоящей и в конечном итоге от суверенной нормы; сила права зависит от разумности построения всей иерархической правовой системы; право живет только в кодифицированных юридических нормах то есть не...
81275. Право и политика 37.71 KB
  Мицкевич зародилось и понятие политики как общественного светского института выражавшего общие дела интересы полиса городагосударства типичного для государственности Древней Греции и Рима . Поэтому политики не существовало в первобытном обществе где даже индивид не отделял свои интересы от интересов родовой общины. Государство главный политик центральный субъект политической жизни и политической организации любого общества: если все другие субъекты политики политические партии профсоюзы отдельные политики и др. выражают...