internetul Windows. Android

PHP afișează toate variabilele post-variabile. Variabile în PHP.

Cu siguranță aveți un dulap sau un dresser acasă. Principiul utilizării lor este simplu: eliminăm lucrurile pe care nu le avem nevoie acum, dar pot avea nevoie după un timp.

Variabilele sunt aranjate în același mod. Ei pot pune o valoare și pot păstra acolo până când este nevoie.

Crearea de variabile

Puneți valoarea variabilei după cum urmează:

În codul de mai sus, am creat un nume variabil $ și am pus-o în valoarea lui Ivan, apoi a creat o variabilă de $ $ și a atribuit o valoare de 20.

Numele "variabil" înseamnă că valoarea sa poate varia în timpul executării scriptului:

În unele limbi, variabila trebuie mai întâi să "declare", apoi să o folosească. Nu există anunțuri în PHP - variabila este creată în momentul în care o puneți în ea.
Cu toate acestea, programatorii PHP spun adesea "declară o variabilă" în loc de "creați o variabilă".

De asemenea, în loc de "pus în valoare variabilă", se spune adesea că "atribuie o valoare".
Motivul este simplu - simbol \u003d, datorită căruia salvăm valoarea la o variabilă, numită "operator de atribuire". Prin urmare, termenul "alocare".

Reguli de numire a variabilelor

1. Numele variabilei începe cu simbolul $.

2. Al doilea simbol poate fi litera sau simbolul de închidere _

Numele variabilelor sunt durabile de caz. $ Nume și $ nume sunt diferite variabile.

Valoarea variabilă a ieșirii pe ecran

Puteți retrage variabila utilizând echipa Echo deja cunoscută de noi:

Comanda ECHO vă permite să afișați simultan mai multe valori:

Notă, am fost transferați la valorile ECHO 2, despărțind-le cu o virgulă. Deci, putem transmite orice seturi de valori. Următoarele două exemple vor duce la același rezultat:

De asemenea, în PHP există o sintaxă abreviată a ieșirii variabilelor. In schimb

Înainte de versiunea PHP 5.4, sintaxa abreviată a funcționat numai atunci când directiva Short_Open_TAG este activată în setările PHP, care permite, de asemenea, eticheta de deschidere abreviată

Verificați valoarea variabilei

Comanda ECHO nu este întotdeauna convenabilă pentru a verifica valoarea curentă a variabilei. De exemplu, atunci când încercați să transmiteți un șir gol "" Absolut nimic nu va fi afișat pe ecran. Și nu este clar ce cauză este într-un cod variabil sau non-de lucru gol.

Prin urmare, pentru a verifica valoarea variabilă, funcția var_dump () este utilizată:

Rezultatul scriptului:

Șir (5) "Vasya" șir (0) ""

După cum puteți vedea, ieșirea PHP nu numai conținutul variabilei, ci și numărul de caractere și chiar tipul de variabilă (linia de șir). Tipuri de date Considerăm în detaliu în următoarele lecții.

Ștergeți variabilele

Puteți șterge o variabilă existentă utilizând funcția Unset ():

Și acum este timpul să practicăm puțin.

Amintiți-vă, aproape orice sarcină pe PHP poate avea mai multe soluții. Prin urmare, dacă soluțiile dvs. sunt diferite de scris pe acest site - acest lucru nu înseamnă deloc că ați făcut ceva greșit.

Scrieți un script care:
1. Creează variabile cu titluri și nume de conținut și unele valori.
2. Afișează valoarea variabilei din titlu în interiorul etichetei H1 și valoarea variabilei conținutului în cadrul etichetei DIV.

Arată o decizie

", $ Titlu","; Eco"

", Conținut $",
"; ?>

Vreau să vă atrag încă o dată atenția că această decizie nu este singura adevărată. De exemplu, următorul cod va duce la același rezultat:

Variabilele de mediu (medii) în Windows conțin diverse informații despre setările de sistem și despre mediul utilizator. Există variabile ale mediului, sistemelor și proceselor.

Cea mai ușoară modalitate de a vedea conținutul variabilelor de mediu în Windows - Deschideți proprietățile sistemului ( sysdm.cpl) -\u003e Avansat -\u003e Variabile de miercuri. După cum puteți vedea, există două secțiuni în secțiunile curente: în partea de sus există variabile ale mediului utilizatorului, în sistemul inferior - sistemic.

În plus, variabilele de mediu sunt stocate în registrul sistemului. Variabilele personalizate sunt stocate în secțiune. Sistem - B. HKLM \\ System \\ CurrentControlset \\ Control \\ Session Manager \\ Mediu.

Puteți retrage valorile tuturor variabilelor de mediu la promptul de comandă Windows. Echipa este simplă:

Comanda va afișa lista variabilelor de mediu și valorile acestora.

În PowerShell, pentru a afișa toate variabilele de mediu, puteți utiliza comanda:

Dacă doriți să afișați o singură variabilă, trebuie să utilizați comanda ECHO, iar numele variabilei trebuie încheiat cu semne de interes. De exemplu,

ECHO% SIDICROOT%

set\u003e C: \\ tmp \\ env_var.txt

Variabilele mediului unui proces specific pot fi obținute folosind gratuit procesare Explorer Utilities (de la sysinternale). Doar deschideți proprietățile procesului și accesați fila Mediu inconjurator.

Variabile în PHP. - Acesta este un fel de container de informații care poate conține diferite tipuri de date (text, numere, matrice și așa mai departe). În general, variabilele vă permit să creați, să stocați, să modificați și în viitor pentru a vă referi rapid la informațiile specificate în ele.

Cum se creează o variabilă în PHP

În primul rând, variabilele conțin un semn $ (dolar) - desemnarea utilizării variabilelor, apoi litere alfabet latin. (de la a la z și mic și mare), la sfârșitul pot conține numere. De asemenea, în titlu este permisă utilizarea stresului mai mic (nu la sfârșit).

Cum pot apela variabile:

$ var.
$ variabilă
$ 1945.
$ _Variable.
Cum nu pot fi numite variabile:

$ 1 - constă numai din numere
$ 1VAR - Nu puteți porni numele variabilei cu numerele
$ / var - de la caractere suplimentare numai subcotarea inferioară _
$ variabil - chirilic este permis de documentația PHP, dar nu este recomandată
$ Variabil - nu puteți utiliza lacune

Fiecare variabilă i se atribuie o valoare. Pentru a atribui o valoare valorii = (in aceeasi masura). În timpul procesării scriptului, valoarea variabilei poate varia în mod repetat în funcție de condiții diferite.

$ city \u003d "Moscova"; // Variable $ City a atribuit un șir (în citate) Valoarea Moscovei
$ \u003d 1147; // o valoare numerică numerică variabilă de $ 1147
?>

$ Nume \u003d "Alexander";
$ Nume \u003d "Alexey";
Echo "$ nume, $ nume"; // retras "Alexander, Alexey"
?>

Afișarea variabilelor PHP.

Separat, ar trebui să dezasamblați cum să afișați variabilele cu operatori de ieșireCui lucrare am dezasamblat în lecția trecută, creând o minune PHP. Operatori de ieșire. . Mai jos, voi da o serie de exemple vizuale cu comentarii.

// deci specificați valorile variabilei
$ Name1 \u003d "Alexey";
$ Name2 \u003d "Alexander";

// afișați variabilele
ECHO $ \u200b\u200bNume2; // va ieși: Alexander
Echo "Nume1 este $ NAME1"; // Nume1 este Alexey

// Când utilizați citate unică
// Numele variabilei, nu înseamnă
Echo "Nume1 este $ NAME1"; // RELEASE: Nume1 este $ Nume1

// puteți afișa doar valori ale variabilelor
ECHO $ \u200b\u200bNume1; // Alexei.
ECHO $ \u200b\u200bNume1, $ Nume2; // aleksealeksandr.
ECHO $ \u200b\u200bNume1. "" $ NAME2; // Alexey Alexander.
ECHO "$ NAME1, $ NAME2"; // Alexey, Alexander

Ecou.<< Aici folosește sintaxa "aici documentul" pentru ieșire
Linii multiple cu o substituție variabilă $ variabilă.
Sfârșit;

Operațiuni cu variabile PHP

Operațiuni aritmetice în PHP
În cazul valorilor numerice, pot fi efectuate operații aritmetice: adăugarea, scăderea, multiplicarea și așa mai departe.

- $ A. (negare) Schimbarea mărcii $ a.
$ A + $ b (adăugire) suma $ a și $ b.
$ A - $ b (scădere) Diferența este de $ a și $ b.
$ A * $ b (Multiplicare) $ A și $ B.
$ A / $ b (diviziune) privată de a împărți $ a la $ b.
$ A% $ b (diviziune în modul) un echilibru între întregi de a împărți $ a cu $ b.
Luați în considerare exemplele

$ a \u003d 2; // Observați, în cazul cifrelor, citatele nu sunt setate
$ b \u003d 3; // Observați, în cazul cifrelor, citatele nu sunt setate

$ rezultat \u003d $ a + $ b; // Fold variabiles.
Echo $ rezultat; // va ieși 5.

$ rezultat \u003d $ B - $ a; // Fold variabiles.
Echo $ rezultat; // va ieși 1.

Operațiuni de creștere și decrement în PHP
Aceste operațiuni vor fi utilizate în principal la construirea ciclurilor, pe care vom vorbi mai târziu mai târziu.
Prefix - operatori prescrise înainte de variabila ( - $ A.; ++ $ A.). Returnați valoarea variabilei la modificări.
Postfix - operatori prescrise după o variabilă ( $ A-; $ A-). Returnați valoarea unei variabile cu schimbare.
Creştere - Creșteți valoarea.
Decrement.ro - reducerea valorii.

++ $ A. Prefixul prefixului. Creste $ a pe unitate si returneaza valoarea $ a.
$ a ++. Postfix increment. Returnează valoarea $ a și apoi crește $ a pe unitate.
- $ A. Prefixul scade. Reduce $ a pe unitate și returnează valoarea $ a.
$ A- Postfix decret. Returnează valoarea de $ a, și apoi reduce $ a pe unitate.
Echo "

Creșterea postfixului

";
$ a \u003d 5;
Eco "ar trebui să fie 5:". $ A ++. "\\ n";

Echo "

Prefixul prefixului

";
$ a \u003d 5;
Eco "ar trebui să fie 6:". ++ $ a. "\\ n";
Eco "ar trebui să fie 6:". $ a. "\\ n";

Echo "

Remedierea postfixului

";
$ a \u003d 5;
Eco "ar trebui să fie 5:". $ a- "\\ n";

Echo "

Prefixul scade

";
$ a \u003d 5;
Eco "ar trebui să fie 4:". - $ a. "\\ n";
Eco "ar trebui să fie 4:". $ a. "\\ n";
?>

Operațiunile de atribuire PHP
Operatorul de bază se pare ca = . La prima vedere, poate părea că acest operator este egal. De fapt, nu este. De fapt, operatorul de atribuire înseamnă că operandul stâng primește valoarea expresiei corecte (adică este stabilită de valoarea rezultată). Operatori combinate - Aceștia sunt operatori care permit utilizarea valorilor anterioare ale variabilelor pentru operațiile ulterioare (adăugați variabila de șir (cu text) sau adăugați valori numerice).

$ a \u003d ($ b \u003d 2) + 4; // Rezultat: $ A este setat de valoarea 6, variabila $ B este atribuită 2.

$ a \u003d 2;
$ a + \u003d 3; // stabilește $ a cu o valoare 5, similar cu înregistrarea: $ a \u003d A + 3;
$ b \u003d "salut";
$ b. \u003d "Pace!"; // Sets $ B String "Bună ziua lumea!", Ca $ b \u003d $ b. "Acolo!";

Există, de asemenea operațiuni de comparație și joc de inteligențăDar vom vorbi despre ei în următoarele lecții. Voi încerca să vă sperie imediat cu o cantitate mare de informații!)

Acum 13 ani.

Un pic Gotcha să aibă grijă de:

Dacă dezactivați registreleGlobale și legate, utilizați get_defined_vars (), este posibil să vedeți ceva de genul următor:

Array.
[Globals] \u003d\u003e matrice
[Globals] \u003d\u003e matrice
* Recursiune *
[_Post] \u003d\u003e matrice ()
[_GET] \u003d\u003e Array ()
[_Cookie] \u003d\u003e matrice ()
[_Files] \u003d\u003e matrice ()
)

[_Post] \u003d\u003e matrice ()
[_GET] \u003d\u003e Array ()
[_Cookie] \u003d\u003e matrice ()
[_Files] \u003d\u003e matrice ()

)
?>

Observați că $ _Server nu este "acolo

imprimare "

". HtmlSpecialChars (Print_R (get_defined_vars (), true))."
" ;
imprimare "
". HtmlSpecialChars (Print_R ($ _Server, TRUE))."
" ;
?>

Și apoi va apărea $ _Server în ambele liste. Cred că nu este într-adevăr o Gotcha, pentru că nu se va întâmpla nimic rău, dar este o curiozitate interesantă.

ACUM 6 ANI.

Deoarece get_defined_vars () primește numai variabilele la punctul în care apelați funcția, există o modalitate simplă de a obține variabilele definite în cadrul domeniului curent.

// În partea de sus a script-ului dvs. PHP
$ vars \u003d get_defined_vars ();

// Acum faceți lucrurile
$ foo \u003d "foo";
$ Bar \u003d "bar";

// Obțineți toate variabilele definite în domeniul de aplicare curent
$ Vars \u003d Array_diff (get_defined_vars (), $ vars);

echo "

"
;
print_r ($ Vars);
echo "
" ;
?>

ACUM 15 ANI.

Iată o funcție care generează un raport de debug pentru afișare sau e-mail
folosind get_defined_vars. Mare pentru obținerea unui snapshot detaliat
bazându-se pe intrarea utilizatorului.

funcția generatedEbugreport ($ Metode, $ definit_vars, $ email \u003d "nedefinit") (
// Funcția de a crea un raport de depanare pentru a afișa sau trimite un e-mail.
// Utilizare: generatebugreport (metoda, get_defined_vars (), e-mail);
// unde metoda este "browser" sau "e-mail".

// Creați o listă de ignorare pentru chei returnate de "get_defined_vars".
// de exemplu, http_post_vars, http_get_vars și altele
// redundant (la fel ca _post, _get)
// includ, de asemenea, versiunile pe care le doriți ignorate din motive de securitate - adică FPSESSID.
$ ignorelist \u003d matrice (http_post_vars "," http_get_vars ",
"Http_cookie_vars", "http_server_vars",
"Http_env_vars", "http_session_vars",
"_Env", "FPSessid", "Sess_dbuser",
"Sess_dbpass", "http_cookie");

$ timstamp \u003d data ("m / d / y h: m: s");
$ message \u003d "Raportul de depanare a creat $ timstamp \\ n";

// obține ultima eroare SQL pentru o măsură bună, unde $ link este identificatorul de resurse
// pentru mysql_connect. Comentarii sau modificați pentru baza de date sau a configurației de abstractizare.
link Global $;
$ Sql_error \u003d mysql_error ($ link);
dacă ($ sql_error) (
$ mesaj. \u003d "\\ nmysql Mesaje: \\ n". mysql_error ($ link);
}
// capăt mysql.

// ar putea folosi o funcție recursivă aici. Ai idee ;-)
foreach ($ definit_vars ca key $ \u003d\u003e $ val) (
Dacă (este_array ($ val) &&! In_array (key $, $ ignorelist) && conte ($ val)\u003e 0) (
$ Mesaj. \u003d "\\ N $ key matrice (cheie \u003d valoare): \\ n";
Foreach ($ val ca $ subky \u003d\u003e $ subval) (
Dacă (! In_array ($ Subcheie, $ ignorelist) && isi_array ($ subval)) (
$ Mesaj. \u003d $ Subcheie. "\u003d". $ subval. "\\ n";
}
Alseif (! In_array ($ Subchey, $ ignorelist) && is_array ($ subval)) (
Foreach ($ subval ca $ subsubkey \u003d\u003e $ subsubval) (
dacă (! in_array ($ subnaboy, $ ignorelist)) (
$ mesaj. \u003d $ SUSUGY. "\u003d". $ subsubval. "\\ n" ;
}
}
}
}
}
Altfel (!
is_array ($ val) &&! In_array (key $, $ ignorelist) && $ val) (
$ Mesaj. \u003d "\\ Nvariable". Tasta $. "\u003d". $ Val. "\\ n";
}
}

Dacă ($ metoda \u003d\u003d "browser") (
ECHO NL2BR (Mesaj $);
}
Altcinef ($ metoda \u003d\u003d "email") (
dacă ($ email \u003d\u003d "nedefinit") (
$ email \u003d $ _Server ["server_admin"];
}

$ Mresult \u003d Mail ($ email, "Report Debug pentru". $ _Env ["Hostname"]. "", $ Mesaj);
Dacă ($ MRESULT \u003d\u003d 1) (
Ecou. "Raportul de depanare trimis cu succes. \\ N";
}
Altfel (
Ecou. "Nu a reușit să trimită Debug Reort. \\ N";
}
}
}
?>

Acum 17 ani.

Rutină simplă pentru a converti un obiect get_definat_vars la XML.

funcția OBJ2XML ($ V, $ liniuță \u003d "") (
În timp ce (lista (tasta $, $ val) \u003d fiecare ($ v)) (
dacă (tasta $ \u003d\u003d "__attr") Continuați;
// Verificați pentru __Attr
dacă (is_object ($ val -\u003e __Attr)) (
În timp ce (lista (tasta $2, $ VAL2) \u003d fiecare ($ val -\u003e __attr)) (
$ Attr \u003d "key2 \u003d \\" $ val2 \\ "";
}
}
Altceva $ attr \u003d "";
dacă (este_array ($ val) || is_object ($ val)) (
Imprimare ("$ liniuță< $key$attr >\\ n ");
obj2xml ($ val, $ liniuță. "");
Imprimare ("$ liniuță\\ n ");
}
Alte Print ("$ liniuță< $key$attr > $ val.\\ n ");
}
}

// obiect exemplu.
$ x -\u003e Nume -\u003e Primul \u003d "Ioan";
$ x -\u003e Nume -\u003e Ultimul \u003d "Smith";
$ x -\u003e arr ["fructe"] \u003d "bannana";
$ x -\u003e arr ["veg"] \u003d "morcov";
$ Y -\u003e client \u003d $ x;
$ Y -\u003e client -\u003e __attr -\u003e id \u003d "176C4";

$ z \u003d get_defined_vars ();
obj2xml ($ z ["y"]);
?>
va ieși:


Ioan.
Smith.


Bannana.
Morcov.

Acum 11 ani.

Ca notă, get_defined_vars () nu returnează un set de referințe variabile (așa cum speram). De exemplu:

// definește o variabilă
$ My_var \u003d "foo";

// Obțineți lista noastră de variabile definite
$ definet_vars \u003d get_defined_vars ();

Acum încercați să schimbați valoarea prin intermediul matricei returnate
$ definit_vars ["my_var"] \u003d "bar";

echo $ my_var, "\\ n";

?>

va ieși "foo" (valoarea inițială). Este frumos dacă get_defined_vars () a avut un argument opțional pentru a le face referiri, dar îmi imaginez o cerere destul de specializată. Puteți face-o singură (mai puțin convenabilă) cu ceva de genul:

$ definet_vars \u003d matrice ();
$ var_names \u003d array_keys (get_defined_vars ());

foreach ($ var_names ca $ var_name)
{
$ definit_vars [$ var_name] \u003d & $ var_name;
}

?>

1 an in urma.

Am postat aici înainte de "acest" fiind în get_definat_vars.

Se pare că nu este întotdeauna acolo, dar în cazurile CERTIAIN va apărea inexplicabil.

Php -r "
Testul de clasă (
Funcția publică a () (var_dump (array_keys (get_defined_vars ()); $ a \u003d 123;)
Funcția publică B () (var_dump (array_keys (get_defined_vars ()); $ acest;)
}
$ t \u003d noul test ();
$ T-\u003e a ();
$ T-\u003e b ();
"

Array ()
Array ("Acest")

Acest lucru nu se întâmplă în PHP 7.2, dar se va întâmpla în PHP 5.6.

1 an in urma.

Unele comentarii arată că această funcție nu va returna referințele. Cu toate acestea, numele și numele de întoarcere sunt "referințe".

Nu aș recomanda sugestiile aici care le convertesc la referințe.

Funcția publică x ($ a, $ b, $ c) (
Foreach (array_keys (get_defined_vars ()) ca cheie $)
Dacă (tasta $! \u003d\u003d "Acest")
$ this-\u003e y ($ (key $));
}

Funcția publică y (& $ intrare) (
$ intrare ++;
}

În loc de $ () puteți utiliza, de asemenea, $$.

Am făcut niște lucruri dărâmate în timpul meu pentru a face un cod extrem de generic, dar nu a trebuit niciodată să fac nimic asemănător celor de mai sus. S-ar putea să nu funcționeze nici măcar (dar ar trebui să nu fie diferită de $ a [Key $]).

De asemenea, puteți face Key $$ ++ dar nu am văzut niciodată codul de genul ăsta care nu a fost "dinamic orientat nu este benefic).

Dacă faci ceva de genul ăsta, atunci dă-i o examinare suplimentară.