PHP: Cílové a týdenní funkce. Funkce s parametry, dynamické wiki, tvorba PHP funkcí Co je to php funkce

Poznámka: adaptivní verze webu je aktivována, protože automaticky aktualizuje malé množství vašeho prohlížeče a přidává na stránku některé podrobnosti pro snadné čtení. Podívám se!

Vše dobrý den. Dnešní článek pokračujeme v zanuryuvatisya v režii PHP, ale nejen. Například budete znát křížovku, když uhodnete, kterou si můžete vzít od 500 do 1500 karbovanti. Všechny podrobnosti, ale pokračujeme ve čtení.

Co je to funkce?

Funkce– toto je zdroj kódu, takže jej lze zkontrolovat na různých místech PHP skriptu (na naší straně).

Syntax:

Function siteOn()( // echo těla funkce "Dobrý den všem čtenářům webu na blogu!"; )

De siteOn- Tse dovіlne іm'ya funktsії, je to nezávislé na registru. Funkce v aplikaci je zobrazovat text úkolů. Pokud PHP interpret zpracuje kód, nebude možné spustit tupou funkci bez těla a samozřejmě nevyhraje. Tělo funkce bude uchováno v paměti až do dokončení skriptu PHP, takže až do konce zájmu o stránku.

Po napsání funkce je naším úkolem začít před voláním na potřebná místa. Osa jak bojovat:

"; ) siteOn(); // wiki funkce siteOn(); // wiki funkce siteOn(); // wiki funkce ?>

V aplikaci jsme funkci volali až 3x a výsledek je:

Potřebujete více funkcí?

Bylo by to lepší, no a funkční? Mohli bychom napsat tři řádky bez funkce. Kdybychom mohli, i když bychom to chtěli změnit v tomto fragmentu, pak bychom to náhodou změnili pouze na jednom místě a ne na třech. A přesto ne všechny! Najednou jsme se podívali na jednoduchou možnost, pokud je objednávka v jednom souboru. V životě souboru mohou být tisíce řádků a distribuce zápachu může být chaotická v celém souboru.

Jeden vpravo, jděte dovnitř a zapamatujte si vše v jedné funkci, jinak si zapamatujte za 10 měsíců a poté prohledejte celý soubor. Ale ne všechny! Stránky se nesčítají do jednoho souboru, takový fragment kódu se nám mohl stát během chvilky v desítkách různých souborů a celé opakování tohoto kódu jsme měli šanci zopakovat za hodinu. Víme, že například všechny funkce jsou uloženy v souborech, půjdu tam a jednou si vzpomenu.

Můžete si tedy vzít své vlastní pravidlo: jakmile se kód opakuje, pak je povinné s ním pracovat!

Překontrolování základu

V PHP není možné vyslovit stejnou funkci dvakrát. Chcete-li například napsat:

// jakýkoli kód nebo bez něčeho) funkce siteOn()( // jakýkoli kód nebo bez něčeho } ?>

To chce takovou milost. Před řečí si zapamatujte všechny druhy odpuštění:

Nelze znovu deklarovat siteOn() (dříve deklarované v Z:\home\custom\www\index.php:3) v Z:\home\custom\www\index.php na řádku 9

U mých farníků je uvedeno, že jsme takovou funkci již ohlušili, a je to přiděleno, v tom samém souboru v té řadě nás již okradli. Promiňte, PHP má tisíce vestavěných funkcí, takže vám tato situace může být klidně vyčítána za hodinu vývoje.

Chcete-li zjistit, zda již takovou funkci máte, můžete otestovat funkci function_exists(). Zadek:

// jakýkoli kód nebo bez něčeho) if(function_exists("siteOn"))( echo "Tato funkce již existuje!"; ) ?>

Výsledek:

Zejména nemám zástupnou funkci, ale vím, že jste za to vinen.

Funkční argumenty

Argument funkce lze nazvat parametrem. Vypadá to takto:

V aplikaci se změní argument funkce $autor. Jak může jóga vikoristati? Při volání funkcí můžeme předat celou hodnotu argumentu. Našim funkcím dáváme potřebnou flexibilitu a dynamiku:

"; ) siteOn("Sergey"); // první způsob $name = "Andrey"; // jiný způsob siteOn($name); siteOn(); // nic není předáno ?>

Výsledek:

Jak bachite, pokud jsme neuspěli s argumentem, vzali jsme milost tohoto typu Varování, Jakmile se náš PHP skript zlepšil, vše pokračovalo. No, já vím, promiňte, dokonce podám informace o těch, kde se všechno stalo. Upozornění - toto je vážná pardon a nelze ji ignorovat.

Funkce může být matkou několika argumentů, například:

"; ) siteOn("Sergey", "Site on!"); // první způsob $name = "Andrey"; // jiný způsob siteOn($name, "Licorice"); siteOn("Fjodor Ivanov"); // předal více než 1 argument ?>

Výsledek:

Nestandardní funkce weekclick

Trochs tenké. V nadcházejícím způsobu zavolejte na funkce, nic nezvoňte a nemusíte tak pracovat, ale víte o nové vině. Divimosya:

";) $text = "siteOn"; // Předáno do změněného názvu funkce$text("Sergey", "Místo na!"); // Funkci voláme přes change ?>

Výsledek bude takto a zní:

Praktická ukázka použití funkcí

Pamatujete si na násobilku vpředu? Máme є 2 parametry: počet řádkůі počet stovptsiv, jak žádáme o změnu. Je čas z toho kódu vypracovat celou funkci, protože vezmeme dvě vyšší uvedené hodnoty!

Veškerý kód z předchozí lekce udělám neměnným, protože nyní již nebudeme muset nastavovat řádky a sloupce v novém čísle, při volání funkce je svět jednodušší:

// zakomentoval q 2 řádky, takže při volání funkce se nyní přenese množství // $řádky = 20; // počet řádků, tr // $cols = 20; // počet sloupců, td$table = "

"; pro ($tr=1; $tr<=$rows; $tr++){ $table .= ""; pro ($td=1; $td<=$cols; $td++){ if ($tr===1 or $td===1){ $table .= ""; )else( $table .=" ";)) $table. = "";) $table .="
". $tr*$td."". $tr*$td."
"; echo $table; ) getTable(3,3); // Zobrazení tabulky multiplikátoru 3 x 3 getTable(5,5); // Zobrazení tabulky multiplikátoru 5x5 getTable(10,10); // Zobrazení tabulky násobení 10 krát 10 ?>

Výsledek:

Argumenty pro uzamčení

Pod hodinou vytvoření funkce můžeme nastavit dostatečné argumenty pro povýšení. Argumenty, které se zdají být důležité pro uzamčení, nelze při volání funkce ukázat a nebude ani pardon. Chcete-li nahradit chybějící argument, funkce automaticky nahradí hodnotu pro propagaci. Zadek:

"; ) siteOn("Sergey"); ?>

Čí žádost je argument $blog vzhledem k hodnotě zakázky Stránky na! Kvůli tomu byla funkce volána pouze s jedním argumentem a druhý byl volán poté, co byla jeho hodnota zkrácena.

Výsledek:

argumenty pro propagaci obov'yazkovo zaznamenává zbytek.

Jinými slovy: argumenty obov'yazkovі (bez významu za narážkami) se zlobí napravo jít první, daleko za nimi jsou argumenty, jako by byly ve významu za narážkami.

Funkce je pouze blok kódu, který mohu pojmenovat a zadat parametry pro zpracování, které lze hacknout, pokud to potřebujeme. Můžete se dostat pryč, je jich málo, ale věřte mi, pokud rozumíte a naučíte se hláskovat funkce, můžete si ušetřit pár hodin a napsat kód, který bude bohatý na čtení!

Ačkoli je téma funkcí pro začínající programátory často přijímáno jako skládací, je nutné, aby to znal každý člověk. Může to zabrat spoustu času, ale nevzdávejte se, i když vám funkce mohou pomoci s kariérním programátorem.

Vytvoříme naši první php funkci

Pokud vytváříte funkci, budete muset začít zadáním mého jména, například myCompanyName. Nejlepší je pojmenovat funkce rozumnými jmény, jako smysl, abyste se nepletli. Tse sám o sobě stojí za to.

Syntaxe před vytvořením funkce je jasná a logická. Nejprve byste měli PHP říci, co chcete vytvořit funkci. Můžete to vyřešit zadáním klíčového slova funkce a svého názvu funkce a dalších slov (o třech věcech si povíme později).

Osa vypadá jako neznělá funkce myCompanyName:

Poznámka: Název funkce může začít od znaku „_“, ale ne od čísel!
Je to jen rámec naší funkce a doprostřed můžeme umístit libovolný kód, který chceme. Týdenní funkce budou zaškrtnuty. Čchi bachit na kudrnatých spáncích na špičatém zadečku "()"? Oblouky qi znamenají, de může být náš funkční kód. Zakřivená mašlička "(" řekni PHP, že kód funkce se opravuje, a složená, že se zavírá ")" řekni PHP, že naše funkce je hotová!

Pojďme na to třeba jednoduchým způsobem.

Axis i všechno je snadné, že? Nyní se naučíme, jak volat naši funkci.

Wiklik dokončil php funkci

Nyní, pokud jste dokončili kódování nejjednodušší funkce, nastal čas ji vyzkoušet. Níže je jednoduchý skript. Pojďme zjistit osu čeho: vyslovme svou funkci a vítěznou її.

!
"; myCompanyName(); echo "Radium ty bachiti!
";

Pokud chcete jednoduchý zadek, je důležité pochopit, že nerespektování může způsobit odpuštění. Pokud vytváříte funkci, postupujte podle těchto jednoduchých doporučení.

  • Své funkce vždy spouštějte klíčovým slovem function.
  • Pamatujte, že váš funkční kód musí být mezi "(" a ")".
  • Pokud voláte funkci, změňte pravopis, abyste se ujistili, že je hláskujete správně.

Možnosti s parametry

Další možnost spočívá v tom, že funkce lze volat s parametry, aby mohly kódu předávat další informace. Naše první funkce, myCompanyName, není příliš složitá, protože vše ostatní je ve stejném řádku.

Parametry jsme však hackli, mohli bychom do naší funkce přidat nějaké další čipy! Parametr se nazývá shackles () a vypadá jako běžná změna PHP. Vytvořme novou funkci, jako bychom vytvářeli zdvořilost na základě jména osoby, protože nám je předán parametr.

"; } ?>

Nyní, když zavoláme funkci sayHello, pak pro smyčce jazyka je možné zadat parametr (im'ya), ale funkce je vyjádřena parametrem a není možné jej ignorovat.
Pokud chceme zadat malý počet parametrů, pak je jednoduše přepíšeme neznělými funkcemi přes koho a všechno, nic víc není potřeba.

Otočení hodnoty funkce php

Kromě toho, pokud můžete předat informace funkci, může také otočit samotnou hodnotu. Ale nezapomeňte, že funkce může otočit pouze jednu hodnotu, pokud chcete, aby to bylo: celé číslo, řeč, booleovská hodnota, jste na omylu!

Jak můžete obrátit význam? Nejlepší růže na zadku. Vyslovíme funkci s parametry a poté uvedeme výsledek skutečné změny, osu takto:

$mojeCislo = mujSoucet(3, 4); // Převezme výsledek volání funkce mySum na $myNumber echo "Po volání funkce myNumber = " . $myNumber."
"; ?>

Pro přilákání funkce významu - je k tomu přidán příkaz return, proč to potřebujete? Výsledek sečtení dvou čísel je uložen do proměnné $ total a za pomoci return $ total je hodnota předána samotné funkci. Přidejme jen změnu $mojeČíslo po zavolání funkce můjSoučet se dvěma parametry 3 a 4 (celé číslo, jako by se sčítaly).

Cvičte, učte se a máte vše!

Funkce jádra se tvoří pomocí klíčového slova function , za kterým následuje funkce, seznam argumentů (jejichž počet může být null) a tělo funkce samotné. Jmenování funkcí je ještě širší. Pokud se vám stane, že opakovaně zaškrtáváte stejný kód, měli byste jej vložit do své funkce a poté na něj kliknout tam, kde jej potřebujete. Funkce Im'ya mohou začínat od symbolu latinské abecedy, můžete nahradit čísla a symbol spodního kříže. V zájmu přijaté přízně začínají názvy funkcí v PHP malými písmeny, a pokud je v názvu vítězného písmene více slov, pak je nové začínat velkým písmenem, případně za sebou , nebo za symbolem spodního podřetězce.

/** * Úžasně jednoduchá uživatelská funkce */ funkce userFunction() ( )

Pokud jde o funkci, existuje více než jeden pokyn, všechny pokyny mají být umístěny uprostřed složených ramen (). Jako funkce je pouze jeden pokyn, tvarované chrámy nejsou závazné. Ale, doporučuji ti začít vítězně.

PHP má standardní funkce, jejichž názvy se svými vlastními neshodíte. Pokud chcete vytvořit funkci s názvem date() nebo time() , můžete ignorovat prominutí spojené s pokusem o změnu přiřazení funkce. PHP funkce lze deklarovat pouze jednou. Změna přiřazení funkcí byla zablokována. Volejte funkce přiřazené k horní části skriptu (často v souborech okremi, které jsou připojeny k hlavnímu skriptu) k horní části hlavního skriptu. Pojďme vytvořit funkci pro zobrazení IP adresy koristuvach na obrazovce.

/** * Funkce pro získání IP adresy coristuvach. * IP adresy jsou převzaty z PHP $_SERVER superglobal pole * pro sběr důležitých dat o registraci serveru */ funkce userIP() ( tisk "

" . $_SERVER["REMOTE_ADDR"] ."

"; }

Funkce byla přiřazena. Pro jeho vyvolání stačí, aby skript v potřebném prostoru specifikoval přenosovou funkci a potřebné parametry (jak je to nutné).

userrip(); // Vivede obrazovku na koristuvach IP adresu 127.0.0.1

Rozsah viditelnosti

Práce s následujícími funkcemi, pochopení oblasti viditelnosti změny. Polyagaet vono v tom, že v některých místech scénáře, yakі z oloshennyh zmіnnyh může být vítězný. Změny, vyjádřené uprostřed funkce, є místní změny. Uprostřed těla funkce se k nim lze obrátit, ale za hranicemi funkce se k nim nelze obrátit. І navpaki, zminnі, obolosheni po tіlom funktsії, nejsou dostupné pro samotné funkce. Ale є danі, yakі dostupné na jakémkoli místě.

Superglobální pole

$_SERVER, $_SESSION, $_COOKIE a další jsou superglobální pole. Tato data jsou dostupná v jakémkoli daném scénáři. Osa je menší než jejich špunt:

  • $_SERVER["REMOTE_ADDR"] - koristuvach IP adres;
  • $_SERVER["SERVER_NAME"] - název serveru;
  • $_SERVER["DOCUMENT_ROOT"] - kořenový adresář webu;
  • $_SERVER["REQUEST_URI"] - dodává se s adresou dokumentu.

Funkční argumenty

Jako funkce, matka je zodpovědná za přístup k datům změny, nebo konstanty, nahé držení těla її tіlom, tsі data mohou být přenesena z vizuálních argumentů. Funkce skin může přijmout řadu argumentů (parametrů), včetně nuly. Nepřenesli jsme funkce stejných argumentů do špičatého zadku. Podívejme se na další příklad.

/** * Vypište částku funkce, abyste sečetli dvě další hodnoty*/ funkce množství($value_1, $value_2) ( // Funkce musí přijmout 2 nové jazykové argumenty print $value_1 + $value_2; // Zobrazení součtu z těchto argumentů na obrazovce ) $zelená_jablka = 10; // Můžeme mít 10 zelených jablek $red_apples = 4; // І є є є 4 červená jablka // Počet jablek lze určit z dodatečného volání funkce množství() // Funkce množství() má převzít dva argumenty, což bude počet jablek množství ($zelená_jablka, $červená_jablka); // Vivede na obrazovku 14

Nezbytné jazykové parametry (parametry pro zamykání)

Funkce může mít velké množství argumentů (parametrů), mezi nimiž mohou být neobov'azkovі (včetně všech). Aby byl argument funkce jednoznačný, musíte při vyslovení funkce zadat hodnotu zkratek.

/** * Vypíše funkci s výchozími hodnotami */ funkce množství ($value_1, $value_2, $value_3 = 0) (tisk $value_1 + $value_2 + $value_3; )

/** * Zvažte počet jablek * Kolikrát má funkce množství() tři argumenty, * a třetí je nekonzistentní, zbytek hodnoty * byl přiřazen, když byla funkce prázdná, takže potřetí * argument není zadán, ztratíme p věnujte pozornost nule * /$geen_apples = 11; $red_apples=7; částka($zelená_jablka, $červená_jablka); // Vivede on screen 18 // Víme, že v komoře je dalších 10 jablek, raptovo $yellow_apples = 10; // І їх také musíte zaplatit částku($zelená_jablka, $červená_jablka, $žlutá_jablka); // Vivede na obrazovku 28

Vzdejte úctu těm, kteří na mě volali, že právě fungují v rámci jednoho scénáře. Skilki je možné kdykoliv bohatě opracovat. Při práci s funkcemi mějte na paměti jeden důležitý detail - stejně jako uprostřed argumentačních funkcí jsou na zadní straně hlavy neznělé pro povýšení a mluvení, ale jsou naznačeny, jačí є neznělé (obov'azkovými).

Funkce userF($v1, $v2 = 100, $v3) ( // Nechápejte mě špatně tisk $v1 + $v2 + $v3; )

Otočit hodnotu

Jednou z hlavních vlastností funkcí je možnost otočit výsledek. Nezapomeňte, že skript musí pracovat s výsledkem práce funkce. Hlavně je potřeba prostě ušetřit a vyhrát na jiném místě, scénář je nutný pro jiné účely [?] Vlasne, za ucelem videni takove funkce na obrazovce to prakticky nema vyhrane.. Aby funkce přepnula hodnotu na ty části scénáře, pro které byl viklikan, je potřeba zrychlit návratový operátor. Zda kód následující po příkazu return není poražen (protože příkaz return je přímo tam).

/** * Nastavíme hodnotu funkce sběrače pro sčítání jablek * jednu hodnotu pro zamykání. * Funkce jednoduše převezme hodnotu argumentů a převede ji na skript, aniž by ji zobrazila na obrazovce. */ částka funkce($value_1, $value_2, $value_3 = 0) ( $result = $value_1 + $value_2 + $value_3; // Stačí sečíst hodnotu argumentu ve funkci return $result; // Předat výsledek do skriptu Change $result - local // th hodnotu nic nelze číst tělem funkce ) $green_apples = 9; // máme є 9 zelených jablek $red_apples = 14; // І 14 dalších červených jablek // Máme toho sakra hodně... $total_green_red = množství($zelená_jablka, $červená_jablka); // Návratový příkaz funkce množství() s hodnotou 23, // jak přiřadit změnu $total_green_red // Máme 7 dalších čerstvých jablek $yellow_apples = 7; // Já teď... $total_green_red_yellow = množství($zelená_jablka, $červená_jablka, $žlutá_jablka); // Otočte hodnotu o 30 a zapište ji // $total_green_red_yellow $all = množství($total_green_red, $total_green_red_yellow); // Otočte hodnotu 53 // Vivede na obrazovce Vše zelené a černé - 23 tisk "

Zelení a červení - ". $total_green_red."

// Vivede na obrazovce Zelené, červené a žluté všechno - 30 tisků

Zelená, červená a žlutá všeho - " . $total_green_red_yellow ."

// Vivede to screen Hodnota součtu - 53 tisk

Hodnota součtu je ". $all."

";

Poznámka: adaptivní verze webu je aktivována, protože automaticky aktualizuje malé množství vašeho prohlížeče a přidává na stránku některé podrobnosti pro snadné čtení. Podívám se!

Zdravím čtenáře blogu místo na! Poznali jsme, že se jedná o funkci v PHP, naučili jsme se, jak vytvářet výkonné funkce, předávat jim argumenty a zpětná volání pro psaní. V pokračování tématu funkcí v PHP je nutné přidat následující slova:

  • Vseredin funkce můžete zkroutit jakýkoli PHP kód (cykly, mytí, zda operace), včetně dalších funkcí (jako integrace, tak a napájení);
  • Funkce Im'ya mohou být založeny na latinských písmenech nebo na symbolu písmene, dát tomu hrst latinských písmen, čísel nebo symbolů písmene;
  • Všechny funkce mají globální rozsah, což znamená, že ať už funkce může být vilikánová nebo ne, může se stát, že je funkce přiřazena uprostřed té druhé;
  • PHP nepodporuje přemapování funkcí, není tedy možné vytvořenou funkci přemapovat (změnit, přidat) ani odebrat;
  • Funkce mohou být přiděleny porotě. Tobto vyklichte funkci a teprve později - pod kódem її popsat, cena není v souladu s praxí a ani vyklich pardons.

Funkce, které jsou na mysli

Můžeme vytvořit (označit, popsat) funkci úhoru. Například:

//volání funkce sayHi, můžete ji zavolat na libovolném místě /*zde není možné volat funkci sayGoodbye, pro ty, kteří si ještě neinterpretovali mysl a nevstoupili doprostřed if*/ if($apply)( funkce sayGoodbye()( echo "Sbohem!"
"; } } /*osa nyní může říct Goodbye viklikati*/
"; }

Výsledek:

Podívej se na zadek:

/* a jaká bude osa, jako viklikati řekni Sbohem tady */Řekni sbohem(); if($apply)( funkce sayGoodbye()( echo "Sbohem!"
"; ) ) funkce sayHi()( echo "Ahoj všichni!
"; }

Výsledek:

Opravdu, cvičím skilki, jednou jsem něco takového nikdy neslyšel a všechny možnosti jazyka jsou potřeba na ulici.

Funkční vložky

Představená funkce - celá funkce, vyjádřená uprostřed jiné funkce. Zadek:

/*Tady nemůžete zavolat sayGoodbye, úlomky se objeví až po zavolání funkce sayHi*/ pozdravit(); /*nazývaná funkce sayHi, můžete ji volat kdekoli chcete*/ /*Teď můžeme říct sbohem viklikati*/Řekni sbohem(); function sayHi()( echo "Ahoj všichni!"
"; funkce sayGoodbye()( echo "Zatím to necháme!
"; } }

No, já vím, při prvním bypassu PHP interpret udává, co ví o popisu funkce sayHi, ale nechoď do středu těla, a pokud interpret nejde doprostřed těla sayHi , pak to není ošklivé є, scho uprostřed mi vyznaєmo ještě jednu funkci - sayGoodbye.

Dalі kód start vykonuvatisya, mi vyklikaєmo sayHi, PHP interpret může přejít do těla funkce sayHi, takže můžete vikonovat її і tam vin vipadkovo znát popis jedné funkce - sayGoodbye, po které a sayGoodbye můžete viklikovat the be-yakoy mіstsі, skіlki zavgodno razіv.

Ale varto vrátit respekt k ještě jemnějšímu momentu v situaci je vyšší: funkce sayHi se stane jednorázovou, takže znovu je to možné, pak se PHP opět použije pro určenou funkci sayGoodbye a v PHP to není lze takto pracovat - není možné předefinovat funkce. O ce ao nich, jak bojovat, jsem psal u úvodního článku.

V PHP se málokdy používá více popisů a častěji lze použít například JavaScript.

Rozsah viditelnosti

PHP má přesně dva rozsahy: globálníі místní. Programování pohybu pokožky oblasti viditelnosti je odlišné. Například C++ má svůj vlastní (místní) rozsah pro smyčky. PHP má přinejmenším globální působnost. Dnes se ale bavíme o funkcích.

PHP funkce mají svůj vlastní, vnitřní rozsah (lokální), takže všechny změny uprostřed funkce jsou viditelné pouze uprostřed funkce.

Znovu, znovu: vše, co je umístěno funkcemi, je světelný rozsah, vše, co je uprostřed funkcí, je místní rozsah. Zadek:

Velmistři, úcta, výživa! Co vidíte zbytek pokynů echo $jméno; ?

Jako ty sám bachili jsme měli 2 směny $jméno, jeden uprostřed funkce (místní rozsah), jinak jen v kódu (globální rozsah), zbytek je přiřazen ke změně $jméno bulo $name = "Rud Sergiy"; A pokud byly uprostřed funkce kameny, pak už žádné další nebyly. Globální rozsah zbývajících úkolů měl $jméno = "Andrey"; sho mi, vlasne a bachimo jako výsledek.

Tobto dvě stejné změny, ale v různých sférách viditelnosti se v žádném případě nepřekrývají a nepřelévají jedna na jednu.

Dovolte mi ilustrovat rozsah maličkostí:

Během prvního bypassu se tlumočník rychle podívá na světlou oblast viditelnosti, pamatuje si změny a funkce, ale nevidí kód.

Návrat ke globálním změnám z místního rozsahu

Pokud však stále potřebujeme obrátit funkci na nejproměnnější $name v globálním rozsahu, nejen že se obrátí, ale změní se? Pro koho existují 3 hlavní možnosti. První výběr klíčových slov globální:

"; globální $jméno; /*od této chvíle můžeme změnit globální $name*/$name = "Rud Sergiy"; ) $ jméno = "Andriy"; sayHi($jméno); echo $jméno; //?

Výsledek:

Ale tsey tak možná minus, pokud se vrátíme ke globální změně $jméno utratili jsme (přepsali) místní změnu $jméno.

Jiná cesta přísahat vyhrát PHP superglobální pole. Toto pole PHP samo o sobě automaticky změní vzhled, jako jsme to udělali v globálním měřítku. Zadek:

$jméno = "Andrey"; // Stejná věc$GLOBALS["name"] = "Andrey";

Otec:

$GLOBALS["name"] = "Rud Sergiy"; ) $jméno = "Andrey"; sayHi($jméno); echo $jméno; // ?

Výsledek je stejný, což je poprvé, kdy bylo klíčové slovo vybráno globální:

Pouze několikrát nebyly přepsány místní změny, aby se změnily $jméno uprostřed funkce ztratila své velké a drahé "Andriy", ale ne "Rud Sergiy".

Předávání argumentů pro požadavky

Třetí způsob- Tse přenos adresy ( platnost) proměnlivé, ale chi nemá її význam. Snahy PHP nejsou příliš vzdálené pohledu jiných programovacích jazyků. Tim není nic menšího, řeknu vám jediný správný způsob, jak předat argument funkci, která je normálně podporována v PHP 5.3 a novějších. A další způsoby práce se zprávami, ale ty byly zpracovány v PHP 5.2 a nižších, v důsledku toho se v nich samotní prodejci PHP spletli, takže o nich nemluvme.

Takže osa, je SPRÁVNÉ předat argument pro požadavek v PHP 5.3 a lze to udělat takto:

Funkce sayHi(& $name)(

V samotném popisu funkce jsme přidali ampersand (&) - tato ikona znamená, že přijímáme nikoli hodnotu změny, ale zprávu (adresu) na hodnotě v paměti. Zápis v PHP umožňuje vytvořit dvě změny, které označují stejnou hodnotu. Tse znamená, že když se jeden z nich změní, změní se urážky, k tomu se v paměti smrad změní na jeden a tentýž význam.

І ve výsledku možná:

// Nepřijmout hodnotu, ale odeslat hodnotu echo "Ahoj, ".$name."!
$name = "Rud Sergiy"; ) $jméno = "Andrey"; sayHi($jméno); echo $jméno; // ?

Výsledek:

Statické změny

Dejte nám vědět o této situaci: musíme se postarat o to, kolikrát jsme byli přivítáni. Osa toho, co děláme, se zvyšuje:

$c++; // zvětší číslo o 1


Výsledek:

Zminna $c nezapomeň na jeho význam, bude stvořen znovu. Musíme pracovat na tom, aby se naše místní změnila $c zapomněl svůj význam po vítězné funkci, pro kterou vítězné klíčové slovo statický:

// lichilnik, zrobili static echo "Ahoj, ".$name."!
$c++; // zvětší číslo o 1 echo "Vítejte." $c jednou.


"; ) sayHi("Rud Sergiy"); sayHi("Andriy"); sayHi("Dmitro");

Výsledek:

Hodnota rotace

Funkce mají takovou šikovnou hodnotu otočení. Dokud je funkcí nahradit to, co chcete vidět na obrazovce, změníte vše a uvidíte to za nás. A my už daleko virishuemo, scho s ní pracovat. Vezměme například tuto funkci, vezmeme čtverec s číslem:

Výsledek:

Zdá se, že nahrazení vidění na obrazovce výsledek vize vyvrátilo. Pro kterou výhru je klíčové slovo return:

Výsledek:

Nyní můžeme vyhrát různými způsoby:

//zobrazení výsledku echo"
$num = getSquare(5); echo $num;

Výsledek:

Obracím vaši úctu k těm, kteří mají klíčové slovo vrátit se nejen otočit hodnotu, ale ve skutečnosti iterovat přes funkce robota, takže celý kód, který je uveden níže u klíčového slova vrátit sežádný způsob, jak to udělat. Jinými slovy, návrat pro funkce také funguje přestávka pro cykly:

echo "Přede mnou PHP nikdy nedělalo :(";) echo getSquare(5); //zobrazení výsledku echo"
$num = getSquare(5); // nastavení výsledku změnit echo $num; // Viveli se změní na obrazovku

Výsledek:

Tobto vrátit se- celý výstup z funkce. Jógo může být vítězné a bez smyslu, co otočit, jen kvůli výstupu.

rekurzivní funkce

Rekurzivní funkce je funkce, která volá sama sebe. Rekurze vyhrává zřídka a je považována za operaci šetřící zdroje (úplnou). Ale buvaє, scho rekurze je nejzřejmější a nejjednodušší možnost. Zadek:

"; if($číslo< 20){ // tak, že rekurze není seříznutá počítProsím(++$číslo); // Funkce countPlease se zavolala sama na sebe) countPlease(1);

Výsledek:

Pokud víte, jak se obejít bez rekurze, je lepší to udělat tímto způsobem.

Typizace Suvora v PHP (určený typ)

V PHP se detaily zredukovaly na konkrétní typ, jehož názvy můžeme specifikovat, jaký typ může funkce akceptovat (tzv. tip na tip):

Výsledek:

Zachytitelná závažná chyba: Argument 1 předán do pole volání countPlease(), zadáno celé číslo, pojmenované /home/index.php na řádku 7 a definované v /home/index.php na řádku 3

Omluvte nás, zdá se, že funkce přijímá pole a číslo je nám předáno. Bohužel zatím můžeme specifikovat typ pouze (pole), ale od PHP 5.4 jsme přidali takovou možnost jako povolatelný:

povolatelný zkontrolujte, zda lze přenášenou hodnotu volat jako funkci. Volatelné může být jako název funkce, nastavme změnu řádku, takže je to objekt a název metody, která volá. Ale o objektech a metodách si povíme později (vyvinul jsem objektově orientované programování), ale o funkcích už víte. Nemohu vám ukázat výsledek práce, protože mám současně PHP 5.3, ale vin buv bi:

Zavolána funkce getEcho

Vikoristannya argumenty ve změně života

A nakonec je tu ještě jedna nuance, která málokdy zvítězí. Uveďte situaci, předáváme argumenty funkci, ačkoli funkce nebyly popsány, například:

Výsledek:

Jako bachita neexistují žádné pardony, ale naše argumenty se nikde nešíří. Neznamená to ale, že ty smrady vznikly - smrady se stále přenášejí do funkce a můžeme je vyladit, k čemuž se používají funkce PHP:

func_num_args()- Otočte počet argumentů předávaných funkci
func_get_arg (pořadové číslo)- Otočit prvek ze seznamu argumentů
func_get_args()- Otočte pole pro změnu argumentů funkce

"; echo func_get_arg(0) ; ) $věk = 22; getEcho("Rud Sergiy", $věk);

Výsledek:

Višňovok

Dnešní článek je posledním článkem za tématem PHP funkcí. Nyní se můžete maximálně inspirovat všemi svými znalostmi, takže můžete směle ovládat funkce pro své potřeby.

Například, pokud má někdo ruku, ale nejsou žádné nápady, jak to udělat - nejlepší způsob, jak napsat hotové (rozpracované) funkce PHP, můžete například napsat funkci count() vlastní rukou , To je jedno.

Děkujeme všem za respekt a příště na shledanou! I když nerozumíte, směle pište své otázky do komentářů!

Podobné články