Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Очистка переменных
 
 автор: Владимир55   (02.02.2012 в 12:58)   письмо автору
 
 

Иногда в скриптах встречается выражение типа:

<?php
$id 
"";
while(
$row mysql_fetch_assoc($res)) $id $row['id'];  // Какое-то выражение, создающее $id
if ($id) die (); // действие по условию.


Мне показалось, что такая комбинация в некоторых случаях порождает нестабильность работы скрипта.

Может, в подобных случаях лучше вместо очистки переменных осуществлять их удаление и использовать

<?php
unset ($id); 

  Ответить  
 
 автор: Valick   (02.02.2012 в 13:40)   письмо автору
 
   для: Владимир55   (02.02.2012 в 12:58)
 

Может, в подобных случаях лучше...
скорее всего да, но все зависит от логики скрипта
возможно нужны именно пустые переменные

  Ответить  
 
 автор: Владимир55   (02.02.2012 в 13:51)   письмо автору
 
   для: Valick   (02.02.2012 в 13:40)
 

Если проверяется переменая на существование
if ($id)
, а её очистили, но не удалили, то она существует. Получится, что это условие выполняется всегда, если ему предшествует
$id = "";


Так?

  Ответить  
 
 автор: Lotanaen   (02.02.2012 в 15:03)   письмо автору
 
   для: Владимир55   (02.02.2012 в 13:51)
 

if ($id) воспринимается в РНР как проверка на не нулевое либо на не пустое значение переменной

  Ответить  
 
 автор: cheops   (02.02.2012 в 15:05)   письмо автору
 
   для: Владимир55   (02.02.2012 в 13:51)
 

Ну отчасти да... при помощи условия if($id) проверяется значение переменной, получила ли она значение отличное от начального или нет. Если нужно проверить существование переменной прибегают к условию if(isset($id))

>$id = "";
Это фактически инициализация переменной, которая как раз стабильность программ здорово увеличивает, исключая целый класс ошибок. В современном программировании неинициализированные данные считаются грехом (это не только PHP касается, но и 95% остальных языков программирования, работающих с ячейками памяти, которые называют переменными).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования