Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zmienne, czyli o co kaman ?
Forum PHP.pl > Forum > Przedszkole
n00bphp
Witam wszystkich. Jeżeli chodzi o tematyke php to jestem newbie, bo wszystkie kursy php sie odemnie odbijają... a mianowicie, jedno zagadnienie... co to są zmoienne... w wiekszosci kursów pisze mniejwiecej cos takiego:
Cytat
Zmienne są to miejca w pamieci w których przechowywane są informacje, zaczyna je się pisać od znaku $
no i zonk blink.gif O co tu chodzi ? a zaraz pod tym znajduje jakis przykład :

$var = "Bob";
$Var = "Joe";
echo "$var, $Var"; // wyświetla "Bob, Joe"


blink.gif heh fajnie, czyli wyswietli mi 2 jakies informacje, ale mogłby mi ktoś podac przykład , który jest zrozumialy czyli: do czego te zmienne sa potrzebne, jakie maja zastosowanie w php itd. z góry dziekuje. Najlepiej, jakby ktoś mi udokumentował , jak można wykorzystac te zmienne... z góry thx za odpowiedz. pozdro
andixxx
no przeciez tutaj wszystko sam napisales, wystarczy tylko to zrozumien.. eh.. a wiec zacnzijmy od nowa:]
zmienne przechowuja informacje, i zaczynaja sie znakiem $ smile.gif
czyli ponizsza zmienna
$zmienna1 = "moje imie ";
zaczyna sie znakiem $ pozniej jest nazwa zmiennej (zmienna1) = " wartosc zmiennej (moje imie) " i konczy sie srednikiem. kazda zmienna musi miec inna nazwe! a wartosci moz emiec takie same wiec twoj przyklad:
  1. <?php
  2. $var = "Bob";
  3. $Var = "Joe";
  4. echo "$var, $Var"; // wyświetla "Bob, Joe
  5. ?>

widzimy tutaj zmienna o nazwie var do ktorej jest przypisany ciag znakow Bob i druga zmienna o nazwie Var, do ktorej jest przypisany ciag znakow "Joe".
jak juz zapewne wiesz echo sluzy do wyswietlania danych: tekstu, wartosci zmiennych etc:
wiec
echo "$var (wyswietla wartosc zmiennej o nazwie var, czyli Bob) pozniej robi przecinek i wyswietla wartosc zmiennej o nazwie $Var (czyli "Joe"), co daje wynik "Bob, Joe"

ps. po znakach // masz komentarze, czyli mozesz sobie tutaj pisac oc tam sobie chcesz, a podczas wyswietlania strony, nie zostanie to pokazane;)

qmasz smile.gif?
Balon
Spójrz tutaj

  1. <?php
  2. /**
  3.  * dobrze
  4.  */
  5. $var = 'I'm noob';
  6. echo $var;
  7. //! echo cos innego(...)
  8. echo $var;
  9.  
  10. /**
  11.  * glupio
  12.  */
  13. echo 'I'm noob';
  14. //! echo cos innego(...)
  15. echo 'I'm noob';
  16. ?>


i teraz zamiast szukac po calym dokumencie ktory ma np 700 lini i zmieniac wszedzie I'm noob na You're noob zajeloby mase czasu... a tak to w zmiennej $var ustawiasz You're noob i masz to wszedzie...

wiem, glupi przyklad ale trudno to wytlumaczyc

encyklopedia Balona tongue.gif "zmienne to cos bez czego php nie mialoby sensu" krótko i na temat
andixxx
wlasnie.. zmienne ustalasz sobie najczesciej na poczatku swojej strony, bo pozniej mozesz je sobie wykorzystywac kilkadziesiat razy, i za kazdym razem musialbys szukac wszystkiego w kilkusetlioniowym kodzie, i edytowac wszystko pokolei.. a tak to zmienisz osbie raz i juz smile.gif
n00bphp
Thx zrozumiałem, na tym forum jest możliwośc przyznania pochwał questionmark.gifbiggrin.gif no a jeszcze jedno...czyli wszystkie zmienne zaczynaja sie znakiem $, i wsadzamy je na samym poczatku kodu... ale to nie bedzie go wydlużało? czy nie ma czegos takiego jak skrzynek zmiennych czy cos takiego, co je przechowuje tak zeby wszystkie inne podstrony korzystały z tych zmiennych questionmark.gif Zebym za każdym razem na każdej podstronie nie musiał wypisywać po kolei każdej zmiennej... questionmark.gif
andixxx
jest.. mozesz przechowywac zmienne w innym pliku php do ktorego bedziesz odwolywal sie za pomoca include" title="Zobacz w manualu php" target="_manual np smile.gif

wtedy tworzysz przykladowo pliki

zmienne.php
  1. <?php 
  2. $zmienna1 = "jakos";
  3. $zmienna2 = "Ci";
  4. $zmienna3 = "to";
  5. $zmienna4 = "wytlumacze";
  6. ?>


index1.php
  1. <?php
  2. include "zmienne.php"; //tutaj wczytujesz plik ze zmiennymi do swojego dokumentu
  3. echo "$zmienna1 $zmienna2 $zmienna3 $zmienna4" //co daje efekt "jakos CI to wytlumacze"
  4. ?>


index2.php
  1. <?php
  2. include "zmienne.php"; //tutaj znow wczytujesz plik ze zmiennymi do swojego dokumentu
  3. echo "$zmienna4 $zmienn1 $zmienna2 $zmienna3" //co daje efekt "wytlumacze jakos CI to"
  4. ?>


teraz rozumiesz smile.gif?
n00bphp
Tak, rozumiem biggrin.gif Big thx smile.gif


Pozdro

Ps: jeśli myslicie ze to koniec, to sie mylicie, na pewno będe miał jeszcze duuzo pytań haha.gif
A ten temat to już do zamknięcia jest ;p
rybik
zmienne to jak x i y w równaniu, uzywa sie wszedzie tam gdzie zawartosc jest zmienna i trzeba na niej dokonac jakiejs operacji nie wiedzac z gory co jest w srodku, poza operacjami matematycznymi masz cala mase funkcji wbudowanych do operacji na zmiennych...
"pojemniki na zmienne" - tak czasem trzyma sie zmienne w osobnych plikach, ktore sie dolacza do skrytpu poleceniem include, takie "zewnetrzne pojemniki" stosuje sie w kilku celach np:
  1. szybki dostep i czytelnosc
  2. wersje skryptu w roznych jezykach
ad 1 - jezeli skrypt ma jakies opcje konfiguracyjne, np operuje na bazie danych, posiada ustwiane wielkosci okienka, trzyma grafiki albo pliki w jakims katalogu - i chcemy moc te dane zmieniac bez grzebania w kodzie - wtedy mozna zrobic plik configuration.php gdzie beda nadane wartosci: adres serwera, sciezka do plikow i co tam jeszcze zapragniesz - jak w kazdej konfiguracji - przykładowa linia:
$path = '/files/';
na poczatku wlasnego skrytpu umieszczasz: include ('configuration.php'); i w dalszym toku pisania skrytpu juz nie wpisujesz tych wartosci "na sztywno" tylko tam gdzie trzeba uzywasz zmiennych (np. $path).
ad 2 - podobni emozesz zrobic w wypadku pisania skryptow wielojezycznych, lub takich, gdzie sporo tekstow leci na ekran do usera - wtedy latwo sobie zebrac komunikaty w jednym pliku i zamiast wpisywac w skrypcie te epistoly, ktore ma user zobaczyc, poslugiwac sie zmiennymi. W celu mozliwosci wyboru jezyka robisz kilka plikow z tymi samymi zmiennymi np. msg_pl.php msg_en.php i tak dla kazdego jezyka, pote w skrypcie glownym w zaleznosci od wyboru jezyka dolaczasz (include) ten plik jezykowy ktory trzeba

pamietaj o "zasięgu zmiennych" - sa one widoczne tylko w obrebie aktualnego skryptu i nie beda widziane w funkcjach wlasnej roboty. Np. zalozmy ze czesto wykonujesz operacje matematyczna, ktorej php sam nie umie (zalozmy ze php nie umie podnosic do kwadratu), w tym celu budujesz wlasna funkcje:
  1. <?php
  2. // tu funkcja sie zaczyna
  3. function kwadrat ($liczba) {
  4. $wynik = $liczba * $liczba;
  5. return $wynik;
  6. }
  7. //tu sie konczy
  8. ?>

teraz aby podniesc do kwadratu liczbe 5 piszesz po prostu kwadrat(5); ale niezaleznie od czegokolwiek zmienne $liczba i $wynik nie beda widziane poza ta funkcja, podobnie jezeli "wewnatrz" tej funkcji zechcesz uzyc zmiennej spoza funkcji - nie bedzie to wprost mozliwe -> sluzy do tego polecenie "global"

poczytac, poogladac gotowe przykladowe skrypty i funkcje...

powodzenia aarambo.gif
MagnuM
Cytat(andixxx @ 3.08.2006, 18:47 ) *
jest.. mozesz przechowywac zmienne w innym pliku php do ktorego bedziesz odwolywal sie za pomoca include" title="Zobacz w manualu php" target="_manual np smile.gif

wtedy tworzysz przykladowo pliki

zmienne.php
  1. <?php 
  2. $zmienna1 = "jakos";
  3. $zmienna2 = "Ci";
  4. $zmienna3 = "to";
  5. $zmienna4 = "wytlumacze";
  6. ?>


index1.php
  1. <?php
  2. include "zmienne.php"; //tutaj wczytujesz plik ze zmiennymi do swojego dokumentu
  3. echo "$zmienna1 $zmienna2 $zmienna3 $zmienna4" //co daje efekt "jakos CI to wytlumacze"
  4. ?>


index2.php
  1. <?php
  2. include "zmienne.php"; //tutaj znow wczytujesz plik ze zmiennymi do swojego dokumentu
  3. echo "$zmienna4 $zmienn1 $zmienna2 $zmienna3" //co daje efekt "wytlumacze jakos CI to"
  4. ?>


teraz rozumiesz smile.gif?


Nie chciałbym być niegrzeczny, ale przedstawianie początkującemu nieprawidłowych wzorców, standardów kodowania jest najgorszą pomocą z możliwych. Jestem przekonany, że kolega będzie teraz tworzył masę plików w których będą same zmienne. To się mija z celem. To jest - wydaje mi się - straszny problem i jak narazie w polskim Internecie nie ma rozwiązania. Rzadko zdarza się osoba, która w swych artykułach przestrzega czytelników o standardach kodowania, a szkoda.
Chciałem tylko przekazać, że bezsensowne nabijanie postów, które zawierają nieprzydatną pomoc nie powinny w ogóle być tutaj umieszczane.
rybik
czy poza nieprawidłowością wynikającą z trzymania zmiennych w osobnych plikach bez wyraźnego i przemyślanego powodu, są tam jakieś błędy ?
chyba include wymaga nawiasów ...
no i w kwestiach formalno - grzecznosciowych to mogles wyraic to zdanie bez cytowania calego posta tongue.gif
nospor
Cytat
chyba include wymaga nawiasów ...
A skad ci to przyszlo do glowy?

Cytat
no i w kwestiach formalno - grzecznosciowych to mogles wyraic to zdanie bez cytowania calego posta

W kwestiach formalnych to mogles najpierw do manuala zajrzec i sie upewnic:
http://pl.php.net/manual/pl/function.include.php
tongue.gif
n00bphp
E przepraszam, czyli to wszystko co napisali, to sa bzdury questionmark.gif? blink.gif
Bo mi już mętlik w głowie zrobiliscie, i teraz nie wiem, czy robiac tak jak podano mi na górze robie dobrze czy źle... a jeśli źle to co questionmark.gifsad.gif

Byłbym bardzo wdzieczny, gdyby ktoś mi wytłumaczył o co kaman haha.gif
MagnuM
Cytat(n00bphp @ 3.08.2006, 19:39 ) *
E przepraszam, czyli to wszystko co napisali, to sa bzdury questionmark.gif? blink.gif
Bo mi już mętlik w głowie zrobiliscie, i teraz nie wiem, czy robiac tak jak podano mi na górze robie dobrze czy źle... a jeśli źle to co questionmark.gifsad.gif

Byłbym bardzo wdzieczny, gdyby ktoś mi wytłumaczył o co kaman haha.gif


Widzisz kolego @rybik ? Ci ludzie ślepo wierzą w to co im napisze każdy, nawet niedoświadczony 'pomocnik'. Chciałem wyraźnie zaznaczyć, o który post, którego człowieka mi chodzi. I nie miałem zamiaru zaznaczyć akurat tego wybranego 'błędu', tylko chciałem pokazać jak wygląda 'pomoc' od niektórych ludzi, a teraz dodatkowo okazało się, że pokazałem jak taka 'pomoc' jest odbierana.
Co do 'błędu' to dlatego pomiędzy apostrofami (heh), ponieważ każdy pisze swój kod jak ma na to ochotę, ale ja uważam, że warto uczulać początkujących na pewne standardy (i nie chodzi tu bynajmniej o nie umieszczanie zmiennych w osobnych plikach, chociaż to też chyba nie jest dobrym nawykiem?), które im pomogą w kodowaniu na przyszłość.

@n00bphp Najlepszym sposobem będzie weryfikowanie niektórych informacji. Oczywiście nie mówie tutaj o autorytetach, które aktywnie uczestniczą w dyskusji na tym forum i nie wątpliwie jest ich wielu. Z biegiem czasu wypracujesz sobie opinię na temat kilku, czy kilkunastu osób i będziesz podziwiał to o czym i w jaki sposób piszą ;-) A ja? Nie będę wymieniał komu ufam ze względów... autoreklamy ;-)
n00bphp
Magnum powiedz mi, co ty chcesz udowodnic questionmark.gif Ja tutaj prosze o pomoc, otworzylem temat , w którym miała się odbywać dyskusja o zmiennych ,a ty tymczasem robisz wykład o autorytetach, zamiast pokazać co jest nie tak, co Ci nie pasuje w tym co napisał rybik... a co do autorytetów, ty nim na 100% nie będziesz ;] Moim zdaniem rybik jest bardziej wartościowym użytkownikiem, bo stara się pomóc... a twoje posty są nie na temat... i jęzeli nie masz nic ciekawego do wniesienia do tej rozmowy to tu niepisz.
MagnuM
Ok, przepraszam. Nie będę się już odzywał w tej pełnej merytorycznych wartości dyskusji. Niech kolega rybik dalej faszeruje Cię swoimi przemyślanymi mądrościami.
BTW. Twoim autorytetm pewnie nigdy nie będę, bo Ty nie jesteś w stanie zrozumieć czym są zmienne. Wybacz ale Twoja kariera programistyczna chyba niedługo się skończy...

EDIT:
O przepraszam, chyba chodziło mi o mądrości adixx'a. Pozatym w żadnym miejscu nie podważałem autorytetu rybika... szkoda że nie byłeś tego w stanie zrozumieć, Twój problem...
Gość
Cytat(MagnuM @ 3.08.2006, 21:19 ) *
EDIT:
O przepraszam, chyba chodziło mi o mądrości adixx'a.

ps : andixxx'a biggrin.gif

i nie zadne madrosci... @n00bphp pytal czy mozna przechowywac zmienne w osobnych plikach aby nie ppowtarzac ich po kilkadziesiat razy w kazdym nowym kodzie, wiec mu odpowiedzialem ze mozna, i pokazalem na szybko jak, aby zrozumial o co chodzi w zmiennych.. ;]

a pozatym @n00bphp jak nizej napisal
Cytat
Tak, rozumiem. Big thx

wiec nie musisz dalej w glowie mu mieszac... napisze swoj kod, tak jak uwaza za slusznie, wazne aby dzilal! a najwazniejsze wedlug mnie jest to, ze zrozumial co to sa zmienne, i jak z nich korzystac! pzdr
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.