Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Bitrix
2 / 2 / 0
Регистрация: 17.01.2011
Сообщений: 42
#1

Легко, но непонятно

14.02.2011, 17:40. Просмотров 742. Ответов 4
Метки нет (Все метки)

1. Какая строчка выведется при исполнении скрипта? Почему исполняется или не исполняется каждое из условий?

$x = 1;
if ($x == '1')
{
echo 'a';
}
if ($x == true)
{
echo 'b';
}
if((bool)$x === true)
{
echo 'e';
}
if ($x === true)
{
echo 'c';
}
if((int)$x === true)
{
echo 'd';
}

Почему первое условие выполняется если x это число int, а в условии сказано что строка. Я так понимаю происходит сравнение со строкой?
Второе условие очевидно, а с третьим не пойму. Поясните

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2011, 17:40
Ответы с готовыми решениями:

Трудно или легко
Всем добрый день! Вот изучил HTML и начал изучать CSS, следующий период PHP....

Найти все маршруты. Легко?
Здравствйте коллеги, повяз в задаче.... туплю второй день... Направьте в нужную...

обратная связь, быстро, легко
Прошу прощение, если такая тема есть, но меня интересует вот что.

Легко ли выучить веб зная прикладное программирование?
Народ всем привет такой вопрос вот если я знаю C++(теоретически) на хорошем...

Почему бытует мнение о том что легко стать программистом php?
Вот например вакансия: PHP-программист Требования: Знание HTML, CSS...

4
Vovan-VE
13153 / 6537 / 1038
Регистрация: 10.01.2008
Сообщений: 15,070
14.02.2011, 17:50 #2
В первом условии (1 == '1') производится конвертация типа (string конвертируется в integer). Проверить просто:
PHP
1
var_dump(1 == '1', '1' == 1, 1 == '1x', '1x' == 1); // все 4 true
Во втором случае integer конвертируется в boolean. Из 1 получается true и в результате true==true.
В третьем случае сначала $x принудительно конвертируется в boolean, а затем получившееся true строго сравнивается с true. Результат true.
0
Bitrix
2 / 2 / 0
Регистрация: 17.01.2011
Сообщений: 42
14.02.2011, 18:15  [ТС] #3
Т.е (bool)$x это принудительное определение поременной $X? Судя этой логике $x(int) определяет в целочисленные с диапазоном int. Вроде понятно.
Если не трудно еще вопрос (sorry если не соответствует теме)

Для какой версии PHP будет работать этот скрипт? Что выведет. Я так понимаю это уже ООП?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Test
{
    private $var;
    function setMe($value)
    {
        $this->var = $value;
    }
}
class More extends Test
{
    public $var;
}
 
$oTest = new Test;
$oMore = new More;
 
echo $oTest->setMe('foo');
 
echo $oMore->setMe('foo');
 
echo $oMore->var;
 
echo $oTest->var;
0
Vovan-VE
13153 / 6537 / 1038
Регистрация: 10.01.2008
Сообщений: 15,070
14.02.2011, 18:36 #4
Цитата Сообщение от Bitrix Посмотреть сообщение
Т.е (bool)$x это принудительное определение поременной $X?
Унарный оператор приведения типа:
PHP
1
(тип) выражение
конвертирует тип значения выражение в указанный тип. См. Type Casting в документации.

Цитата Сообщение от Bitrix Посмотреть сообщение
Для какой версии PHP будет работать этот скрипт?
Этот код сможет запуститься на PHP5+. На строке 24 упадет в fatal error при попытке прочитать приватное свойство. Не считая сообщения об этой ошибке, код больше ничего не выведет, ибо в 22й строке из свойства будет прочитано NULL. Плохой пример. Показывает, как не надо делать.
1
Bitrix
2 / 2 / 0
Регистрация: 17.01.2011
Сообщений: 42
14.02.2011, 18:42  [ТС] #5
Ясно, спасипо за разьяснение.
0
14.02.2011, 18:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2011, 18:42

Foreach simpleXml непонятно
Доброго времени суток. Объясните мне кто-нибудь таку. вещь: есть xml файл...

Непонятно поведение Cookie
Случайно выяснилось, что на сайте не работает скрипт, использующий Cookie. То...

Непонятно в чем ошибка
Кто подскажет в чем ошибка 3|public static function getCategoriesList(){...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru