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

Форум PHP

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

 

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

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

тема: PHP Загадка :)
 
 автор: Root   (07.03.2008 в 05:46)   письмо автору
 
 


<?php
$i 
1;
$j = ($i++ * 2) + --$i;
echo 
$j;
?>

почему 3? :)

   
 
 автор: vitroot   (07.03.2008 в 06:21)   письмо автору
 
   для: Root   (07.03.2008 в 05:46)
 

>

><?php
>$i 1;
>
$j = ($i++ * 2) + --$i;
>echo 
$j;
>
?>
>

>почему 3? :)

$i++ * 2 = 2, поскольку данный инкремент срабатывает только при следующем обращении к переменной $i.
а вот --$i = 1, поскольку $i уже здесь равна 2, и ты ее декрементируешь. Итого:

$j = (1*2) + 1

очень полезно:
http://cclib.nsu.ru/projects/gnudocs/texts/kernigan.html
http://www.php.net/manual/ru/language.operators.increment.php

   
 
 автор: ONYX   (07.03.2008 в 06:22)   письмо автору
 
   для: Root   (07.03.2008 в 05:46)
 

Просто
$i = 1;//хранящееся значение
($i++ * 2) + --$i;
$I++ // сначала возвратит значение а потом увеличит 1*2=2; $i++=2;
--$i // сначала уменьшит значение потом возвратит --$i=1; 2+1=3

   
 
 автор: vitroot   (07.03.2008 в 06:27)   письмо автору
 
   для: Root   (07.03.2008 в 05:46)
 

а я уж подумал, что тут и правда загадка :(

   
 
 автор: Root   (07.03.2008 в 06:40)   письмо автору
 
   для: vitroot   (07.03.2008 в 06:27)
 

>а я уж подумал, что тут и правда загадка :(
после бессонной ночи была довольно загадочной ;)

   
Rambler's Top100
вверх

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