Autor Zpráva
marty013
Profil *
Ahoj, mám problém, resp. dost možná za to může moje neznalost, ale k věci. Udělal jsem si tenhle "skript"
<?php
$cyear = date('Y');
$nyear = $cyear++
echo $cyear . " " . $nyear;
?>

a výstup je 2011 2010, ale v $cyear má být 2010, tudíž $cyear++ je 2011 a tím pádem je i $nyear 2011. Předem děkuji za rady.
panther
Profil
marty013:
$cyear = date('Y');
$nyear = $cyear++

není totéž, co
$cyear = date('Y');
$nyear = $cyear + 1;

a to není to samé, co
$cyear = date('Y');
$nyear = ++$cyear
marty013
Profil *
panther:
Děkuju, už mi to docvaklo jak jsem to uviděl.
Keeehi
Profil
Pro ostatní co by nevěděli:
$cyear = date('Y'); // přiřadí do $cyear aktuální rok (2010)
$nyear = $cyear++; // přiřadí do $nyear hodnotu z $cyear (2010) a poté zvětší $cyear o jedna (na 2011), protože se jedná o postinkrementaci
echo $cyear . " " . $nyear; // vypíše 2011 2010

$cyear = date('Y'); // přiřadí do $cyear aktuální rok (2010)
$nyear = $cyear + 1; // přiřadí do $nyear výsledek operace $cyear + 1 (2010+1=2011), obsah $cyear zůstává nezměněn
echo $cyear . " " . $nyear; // vypíše 2010 2011

$cyear = date('Y'); // přiřadí do $cyear aktuální rok (2010)
$nyear = ++$cyear; // $nejdříve zvětší $cyear o jednu, neboť jde o preinkrementaci (2010->2011) a pak uloží obsah proměnné $cyear (nyní už 2011) do $nyear (2011)
echo $cyear . " " . $nyear; // vypíše 2011 2011

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: