Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlanie wartości zmiennych
Forum PHP.pl > Forum > Przedszkole
UrzadPracy
Witam ponownie!
Mam kolejne pytanie z działu "żłobek". party.gif

Ponownie pragnę zaznaczyć, że dopiero się uczę.

Jaka jest różnica pomiędzy:

  1. echo ('Wartością $liczba jest ', $liczba, ' to już wszystko');


, a

  1. echo 'Wartością $liczba jest ', $liczba, ' to już wszystko';


?

Poza tą różnicą, że poprawnie wyświetla się jedynie drugi przypadek i dlaczego tak się dzieje, że tylko jeden sposób wyświetla?

blooregard
Dlaetgo, że echo to nie funkcja tylko konstrukcja językowa i jako taka nie wymaga uzycia nawiasów, co zresztą masz czarno na niebieskim w dokumentacji:
Cytat
echo() is not actually a function (it is a language construct), so you are not required to use parentheses with it. echo() (unlike some other language constructs) does not behave like a function, so it cannot always be used in the context of a function. Additionally, if you want to pass more than one parameter to echo(), the parameters must not be enclosed within parentheses.


Do echo nie można również przekazywać zmiennych jako argumentów w momencie, gdy jednak tych nawiasów użyjesz, co też jest czarno na niebieskim w dokumentacji:
Cytat
Informacja: Ponieważ jest to element składni języka a nie funkcja, nie może być on wywoływany używając zmiennych funkcji


http://pl2.php.net/echo
Cytat
Ponownie pragnę zaznaczyć, że dopiero się uczę.

Ponownie pragnę zaznaczyć, że ucząc się powinieneś korzystać z manuala na php.net.


UrzadPracy
Dziękuję za wszystkie informacje. Są bardzo pomocne i rozjaśniają mi wiele. party.gif
Cytat
Ponownie pragnę zaznaczyć, że ucząc się powinieneś korzystać z manuala na php.net.


Uczę się przede wszystkim z książki "Praktyczny kurs PHP5", Marcina Lisa, co oczywiście nie zwalnia mnie z korzystania zasobów, ale nie wiedziałam gdzie, takowe dokładnie istnieją. Tym bardziej dziękuję za sugestię.
Z drugiej strony zdaję sobie sprawę, ze nie wszystko będę potrafiła tak fantastycznie znaleźć jak Wy koledzy. Nie mam wystarczającej wiedzy i umiejętności. Dlatego mam nadzieję, że jeszcze mi kiedyś pomożecie i rozjaśnicie. Ze swojej strony obiecuję, bardziej się postaram.

Pozdrawiam i polecam się na przyszłość. party.gif
blooregard
Cytat
Z drugiej strony zdaję sobie sprawę, ze nie wszystko będę potrafiła tak fantastycznie znaleźć jak Wy koledzy.

Spokojnie, pomożemy smile.gif
Pamiętaj - manual na php.net to podstawa (przyda się znajomość angielskiego, choć część dokumentacji jest dostępna po polsku)

Praktyczna rzecz: jeśli szukasz opisu jakiejś funkcji na php.net, wpisz w pasku adresu:
Cytat
php.net/nawza_funkcji

a zostaniesz automatycznie przekierowana na stronę z odpowiednią treścią.
UrzadPracy
W dobie translatorów i słowników internetowych angielski nie powinien aż tak bardzo mi utrudnić.
A jak utrudni to przybędę tutaj. party.gif

Zapamiętam - manual na php.net to podstawa i najpierw tam będę się udawała w razie wątpliwości.

Jeszcze raz wielkie dzięki! party.gif
biometr
Witaj, przecinki w zapisie
  1. echo 'Wartością $liczba jest ', $liczba, ' to już wszystko';
Oznaczają kolejne elementy do wyświetlenia gdzie każdy element wyświetlany jest osobno i nie ma nic wspólnego z pozostałymi.
Więc ten zapis wyżej jest równoznaczny z zapisem :
  1. echo 'Wartością $liczba jest ';
  2. echo $liczba;
  3. echo ' to już wszystko';


Bardzo łatwo można to udowodnić na dwóch przykładach:
  1. echo 'Jestem tekstem ktory zostanie wyswietlony bo jestem osobnym elementem, który jest wyswietlany osobno i nie mam nic wspolnego z elementem drugim ktory jest blędny' , blad();

A tu drugi przykład z kropką:
  1. echo 'Jestem tekstem, ktory sie nie wyswietli bo blednie zostalem polaczony z wynikiem funkcji ktora nie istnieje - wyswietlony zostanie blad zamiast tego tekstu' . blad();


A teraz odpowiedź na pytanie:
Echo przyjmuje tylko jeden parametr (który będzie wyświetlony) więc błędny jest zapis typu echo(1,2,3); gdzie przecinek służy jako rozdzielanie poszczególnych parametrów. Natomiast zapis echo 1,2,3; bez nawiasów już jest poprawny, bo przecinek tutaj rozdziela poszczególne elementy które są wyświetlane POJEDYNCZO i osobno każdy! Czyli Echo(); otrzymuje zawsze po jednym parametrze i go wyświetla i wszystko działa.
UrzadPracy
O kurcze, niezły wykład! ohmy.gif

Wielkie dzięki! Po dwukrotnym przeczytaniu już wiem o co chodzi!

Tylko, do licha, czemu mi książka takich rzeczy nie wyjaśnia? mad.gif

Jeszcze raz, bardzo dziękuję biometr! party.gif
gargamel
Trochę się podłączę pod temat.
Jaka może być przyczyna nieprawidłowego wyświetlania takiego kawałku kodu:

  1. echo "Wynikiem jest:".jakasFunkcja($par1, $par2, par3)."jednostek.";


Nieprawidłowe wyświetlanie polega na tym że echuje mi najpierw tekst który jest wynikiem jakasFunkcja($par1, $par2, par3), a później resztę.
Czyli tak jakbym napisał
  1. echo jakasFunkcja($par1, $par2, par3)."Wynikiem jest: jednostek.";


Jeśli to nie za wiele mówi, to postaram się podać jakiś bardziej konkretny przykład.
Wicepsik
  1. echo "Wynikiem jest:".jakasFunkcja($par1, $par2, "par3")."jednostek.";

gargamel
Oczywiście wpisuję
  1. echo "Wynikiem jest:".jakasFunkcja($par1, $par2, $par3)."jednostek.";

(pisząc tu w temacie zapomniałem wstawić dolara jedynie)
Crozin
Taki zapis jest jak najbardziej poprawny - błąd jest gdzie indziej.
gargamel
O to mi chodziło. Więc problemem będzie "jakasFunkcja"
Pozdro!
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.