Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana hostingu i problem z "?:" (unexpected ':')
Forum PHP.pl > Forum > PHP
cinkibolek
Pozdrawiam serdecznie wszystkich w moim pierwszym poście smile.gif
Niestety pierwszy post i od razu "o raanyy pomocy!"
Nie znam się za bardzo na php, i dlatego utknąłem w pewnym miejscu.
Już opisuję sytuację:
Dostałem zadanie, uruchomić stronkę która wcześniej była na dedyku, została przeniesiona na hosting www
Stronka się nie wyświetlała (nie ja robiłem przenosiny), nie wiem jaki php był na dedyku, po krótkiej walce znalazłem to co blokowało stronę.

W kilku plikach jest zapis podobny do tego :
$lang = $_GET['lang'] ?: "pl";

Co wywołuje :
Parse error: syntax error, unexpected ':' in XXX on line 7

Rozumiem że powinienem coś wstawić między "?" a ":" czy może całkiem to przerobić ?
Nie za bardzo wiem jak mam interpretować taki zapis ... dlatego zwracam się z prośbą o pomoc...

Pozdrawiam

rocktech.pl
Witam.

Wersja PHP to zapewne 5.2.x.

  1. $lang = $_GET['lang'] ? : "pl";
  2. /**
  3.  * co jest równoznaczne z
  4.  */
  5. if ( $_GET['lang'] ) {
  6. $lang = null;
  7. } else {
  8. $lang = "pl";
  9. }
  10. /**
  11.  * i równoznacze z
  12.  */
  13. ($_GET['lang']) ? $lang = "pl" : $lang = null;
  14.  
  15. /**
  16.  * A poprawnie
  17.  */
  18. $lang = isset ( $_GET['lang'] ) ? null : "pl";
  19.  
  20. /**
  21.  * albo
  22.  */
  23. isset ( $_GET['lang'] ) AND $lang = "pl";

lukaskolista
Cytat
Rozumiem że powinienem coś wstawić między "?" a ":" czy może całkiem to przerobić ?
dobrze rozumiesz.Jesli nie wiesz czy dobrze rozumiesz komunikat to masz 2 wyjscia:
1. Sprawdzic w slowniku
2. Poprawic kod tak, jak Ci sie wydaje. Jezeli blad zniknie, to jest ok, jezeli nie, to wroc do pkt 1.

Sorki ze tak ostro, ale nie trafie takiego... nie wiem nawet jak to nazwac... ogarnij sie po prostu.

Co do problemu:
  1. $langs = array('pl', 'en', 'de');
  2. $lang = ((isset($_GET['lang']) and in_array($_GET['lang'], $langs)) ?: 'pl');
Crozin
@rocktech.pl: a ?: b, to skrócona forma a ? a : b, nie a ? null : b.
cinkibolek
Cytat(Crozin @ 11.06.2012, 11:37:21 ) *
@rocktech.pl: a ?: b, to skrócona forma a ? a : b, nie a ? null : b.


Do tego doszedłem, dzięki za pomoc i nakierowanie smile.gif błędami już nie sypie, teraz walczę z formularzem rejestracyjnym, zapętla się w 2 kroku (2 z 3), ale w sumie chyba dam rade to rozgryźć smile.gif
rocktech.pl
Zgadza się. Mój błąd.

  1. $_GET['lang'] = "en";
  2. $lang = $_GET['lang'] ? : "pl";
  3. var_dump ( $lang );


Wynik:

Kod
string(2) "en"
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.