- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Занялся изучением php и наткнулся на один непонятный и удивительный момент!:)))
В книжке написано, что функция isset($per1) возвращает значение "истина" (true), если переменная $per1 существует. Я решил это проверить! Вставил его в переменную, чтобы $per2 была равна тому значению, которое выдаст эта функция.
Вписал в php-файл вот этот код:
<?php
$per1=0;
$per2=isset($per1);
echo $per2;
?>
В результате в окне браузера отобразилась цифра "1" вместо "true".
Вопрос 1: Кто-нибудь мне может объяснить почему?
Дальше еще интереснее!:))) В книжке написано, что функция (или оператор) unset($per1) убивает эту переменную. Я вставил его в код так:
<?php
$per1=0;
unset($per1);
$per2=isset($per1);
echo $per2;
?>
И о чудо! Функция осталась жива несмотря на зловещую функцию-убийцу под именем "unset"! :))) При этом после вывода на экран браузера цифры "1" загрузка страницы продолжается, но что там грузится мне не ясно.
Вопрос 2: Почему она осталась жива?
Вопрос 3: Почему загрузка страницы после вывода на экран значения не остановилась?
Извините, если я задал слишком глупый вопрос. Я новичек в php и возможно чего-то не понимаю)))
P.S. Тестировал на php 5.2.10
1 эквивалент true
0 эквивалент false
1. true = 1, false = 0(""), обычное приведение к строке, ведь echo печатает строки :) если надо внутреннее устройство - юзайте var_dump
2. какой ужас. видимо тчото пошло не так.
3. так надо
В результате в окне браузера отобразилась цифра "1" вместо "true".
Вопрос 1: Кто-нибудь мне может объяснить почему?
true и 1 в определеных моментах одно и тоже (не всегда)
В результате в окне браузера отобразилась цифра "1" вместо "true".
Вопрос 1: Кто-нибудь мне может объяснить почему?
Потому что значение переменной булевого типа true преобразуется в строку как "1".
$per1=0;
unset($per1);
$per2=isset($per1);
echo $per2;
Все убивается
1 эквивалент true
0 эквивалент false
Faster, SEO.Slash, KGB, bearman, спасибо! с 1-ым вопросом разобрались. Почему-то в книжке про эквиваленты не сказано ни слова(((
3. так над
KGB, bearman, а можно по-подробнее? Что могло пойти не так? Ведь код самый простой.
KGB, bearman, а можно по-подробнее? Что могло пойти не так? Ведь код самый простой.
А фиг его. Вы попробуйте ради прикола
<?php
$per1=0;
unset($per1);
$per2=!isset($per1);
echo $per2;
?>