Avatar
Michael Kufner:

Ahoj, programuju si FB aplikaci. Setkal jsem se s problémem, který si nedokážu nikde vysvětlit. Mám následující kód:

$token = $session->getAccessToken();
$expiration = $token->getExpiresAt();
var_dump($expiration);
$time = $expiration->date;
echo("<br />");
echo($time);

vše funguje, time se vypíše správně. Problém nastává v okamžiku, kdy umažu řádku s var_dump($expi­ration); jelikož se mi to proměnné time nepřiřadí vůbec nic (zkoušel sem poté i time var_dumpnout a ta proměnná je bez předchozího var_dumpu prázdná).
Struktura pole(objektu) je následující:

object(DateTime)#12 (3) {
  ["date"]=>
  string(26) "2015-04-25 19:39:41.000000"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(3) "UTC"
}

Prosím poraďte mi :) Děkuju

 
Odpovědět 25.2.2015 19:15
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na Michael Kufner
Marek Z.:

A toto vám nefunguje?

$time = $expiration['date'];
Nahoru Odpovědět 26.2.2015 9:28
Chybami se člověk učí, běžte se učit jinam!
Avatar
shaman
Člen
Avatar
Odpovídá na Michael Kufner
shaman:

Tento problem je znamy php bug https://bugs.php.net/bug.php?…

Problem je v tom ze date nie je vlastnost DateTime objektu a date by si nemal vobec vidiet, ale z nejakeho neznameho dovodu sa pri print_r a var_dump vytvori. Ak sa snazis pristupit k vlastnosti date pred var_dump-om alebo print_r-om, stylom $expiration->date, tak este neexistuje. Je to zmatocna informacia. :)

Kedze date neexistuje pred vardumpom skus si vypisat tvoj DateTime object takto

$expiration->format('Y-m-d H:i:s');
Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět 26.2.2015 12:07
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.