PHP muutuja saadavus
Paljud PHP programmeerijad on segaduses, millal on PHP muutuja PHP programmis saadaval. Põhimõtteliselt sõltub see kuidas ja kus muutuja deklareeritakse või luuakse. Eelmistes juhendites * õppisite, et enamikul juhtudel deklareerite muutuja, andes sellele algväärtuse.

$ dollar_amt = 10;

See hoolitseb kuidas kuulutada muutuja, kuid kus kuulutate muutuja on ka oluline. Muutuja on saadaval ainult seal, kus see loodi. Näiteks kui loome funktsiooni piires muutuja, on see muutuja saadaval ainult selle funktsiooni sees. Seda funktsiooni väljaspool ei eksisteeri. Mõelge funktsioonile kastist, mis sisaldab muutujat, ja te ei saa muutujat kasutada väljaspool seda kasti. Vaatame näidet. Allolev funktsioon loob muutuja $ dollar_amt ja prindib lause seejärel veebibrauserisse.

funktsioon print_cost ()
{$ dollar_amt = 10;
echo "Maksumus on $ dollar_amt dollarit."; }

Siin pole probleemi, sest me kasutame muutujat kajaloendis ja see kajaväide on osa samast funktsioonist, mis muutuja lõi. (Kõik see asub kastis.) Kuid kui me tahame muutujat kasutada teises kajaloendis hiljem programmis, ei tööta me enam kasti sees. Püüame kasutada selle loonud algse funktsiooni muutujat "väljaspool".

funktsioon print_cost ()
{$ dollar_amt = 10;
echo "Maksumus on $ dollar_amt dollarit."; }
------
------
echo "Peate saatma tšeki dollar dollar_amt dollarit.";

Kuna muutuja pole teises kajaloendis saadaval, näeb veebileht välja selline.

Peate saatma dollarite tšeki.

Kuid muutujaid saate luua kõikjal oma programmis ja mitte ainult funktsioonide sees. Kuidas saab muutujaga, mis on deklareeritud väljaspool funktsiooni, näiteks teie programmi põhiosas? Sama kättesaadavuse reegel kehtib ka. Muutuja on saadaval ainult seal, kus see loodi (antud juhul väljaspool kasti). Kui proovite kasutada muutujat funktsioonis / kastis, pole see saadaval. Näiteks kui seate muutuja $ cent_amt algväärtuseks oma programmis 50, ei saa te seda allpool oleva funktsiooni sees kasutada.

sendi suurus = 50;


funktsioon print_cost ()
{$ dollar_amt = 10;
echo "Maksumus on $ dollar_amt dollarit ja $ sent_amt senti."; }

Veebibrauseris näete ainult järgmist lauset.

Maksumus on 10 dollarit ja senti.

Aga kuidas saab neist aegadest, kui peate funktsioonis kasutama välist muutujat? Lihtne viis selle probleemi lahendamiseks on funktsiooni kutsumisel selle muutuja argumendina edastada.

print_cost ("50");

-------
* Võib-olla soovite lugeda mõnda eelmist õpetust PHP muutujate ja funktsioonide kohta.





Video Juhiseid: Building Apps for Mobile, Gaming, IoT, and more using AWS DynamoDB by Rick Houlihan (Aprill 2024).