Jump to content
php.lv forumi

ceļā uz ideālo jaunumu lapu


direktors

Recommended Posts

Funkcijas vajadzīgas, lai nerakstītu divās vai vairāk vietās vienu un to pašu kodu.

Piemēram, iedomājies, ka tev izvelkot datus no datubāzes tie speciāli jāapstrādā. Nu teiksim jāizvāc visi X Y un W burti ārā no teksta (piemērs mākslīgs, bet nu var jau būt ka jāveic sarežģītākas un garākas darbības).

Tad padomā, vai tu katreiz izpildot mysql_query un velkot datus ārā rakstīsi str_replace(array('X', 'Y', 'W'), '', $text); vai arī uztaisīsi funkciju:

function blahblah($x) {
 return str_replace(array('X', 'Y', 'W'), '', $x);
}

Un tad apstrādājot datus pielietosi šo funkciju echo blahblah($row["text"]);

Padomā ko tu iegūsti -

1) ja nu tiem XYW burtiem nāk jauns burts klāt, piemēram Q. Tad tev jāmaina būs tikai vienā vietā - funkcijā. Ja tev nebūtu funkcijas, tad tev būtu jāmeklē pa visu savu kodu, kur notiek šī darbība un jāmaina daudzās vietās .

2) ja nu tā darbība ir sarežģīta un tu secini, ka tajā ir kļūda, kuru vajag izlabot - funkcijai jālabo vienā vietā, bez funkcijas - daudzās.

Tās ir tikai dažas priekšrocības. Vēl ir arī tāda lieta kā koda struktūra.

Iedomājies, tev ir viens garš garš fails, kurā tu veic n-darbības: apstrādā GET/POST mainīgos, lasi datus no datubāzes, apstrādā tos un izvadi tos. Ja to visu rakstīsi vienā garā garā palagā, pašam būs grūti orientēties un saprast, kur kas notiek. Tāpēc var veidot funkcijas katrai darbībai, kuras izsauc savā galvenajā failā:

<?php
 require_once("manas_funkcijas.php");
 process_request();
 query_database();
 process_data();
 output_data();
?>

Savukārt šīs izsaucamās funkcijas iekšienē dalītos sīkākās funkcijās. Vai saproti, ka šādu kodu ir lasīt daudz ērtāk un daudz saprotamāk, nekā garus palagus, ko dažkārt te publicē?

Protams, realitātē šīs funkcijas var nebūt viena pēc otras tā tīri izsaucamas, bet iekļautas kādos if nosacījumos vai for ciklos.

Link to comment
Share on other sites

  • Replies 50
  • Created
  • Last Reply

Top Posters In This Topic

bubu, es taču izmantoju funkcijas un apzinos to lietderību.

 

kā reizi dažus postus iepriekš runāju, ka man ir funkcija kas piesledzas datubāzei. un attiecigi katrā lapā sākumā iemetu piesledzzamies_db();

 

pēc tā parādījās komentāri ka nemāku lietot funkcijas. kur tad mana vaina?

Link to comment
Share on other sites

Nu, jā, kļūda drīzāk bija iekš variabļu redzamības apgabalu saprašanas :) T.b. ja tu inicializē variabli funkcijā, tas ir pieejams tikai šajā funkcijā. Piemērs zemāk nestrādās:

function init_var() {
$var = "kaut kas te";
}
init_var();
echo $var;

Lai tiktu pie tā variabļa klāt ārpus funkcijas, viņu vajag atgriezt (return):

function init_var() {
$var = "kaut kas te";
return($var);
}
$var = init_var();
echo $var;

Tavā gadījumā tā bija ar $connection :)

Edited by john.brown
Link to comment
Share on other sites


×
×
  • Create New...