Topic: Dėl fukcijos

Sveiki,

norejau paklausti kaip padaryti kad fukcija matytu masyva?

<?php

//sukuriu masyva

$array[0][1]=1;
$array[1][1]=2;
$array[2][1]=3;


function bandymas(){

// kaip padaryti kad $array masyva matytu fukcijos viduje?
// siuo atveju nieko neatspausdina
printf($array[0][1]);
printf($array[1][1]);
printf($array[2][1]);

}

bandynas();

?>


Dėkui

Re: Dėl fukcijos

a) variantas - perduoti masyvą per funkcijos parametrus:

$mas = array(1,2,3);
function test($masyvas){
   print_r($masyvas);
}
test($mas);

b) variantas - funkcijos viduje nurodyti, kad masyvas toks ir toks yra globalus:

$mas = array(1,2,3);
function test(){
   global $mas;
   print_r($mas);
}
test();

Re: Dėl fukcijos

dekui labai pagelbejai.

Re: Dėl fukcijos

uz b varianta, kapoti rankas reikia :)

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Dėl fukcijos

zygis wrote:

uz b varianta, kapoti rankas reikia :)

kodėl?

P.S. Man rodos C/C++ kalbos mėgėjai dar pridėtų 3 variantą - perduoti funkcijai pointer'į į masyvą :)

Re: Dėl fukcijos

simas wrote:

P.S. Man rodos C/C++ kalbos mėgėjai dar pridėtų 3 variantą - perduoti funkcijai pointer'į į masyvą :)

Tai ir PHP gali perduoti pointerį (nuorodą)..

O ar naudoti globalius kintamuosius funkcijoje yra gerai ar blogai čia manau požiūrio reikalas. Aš manau, kad protingose rankose nieko blogo neatsitiks. O kreivose tai gali daryt ką nori vistiek bus viskas kreiva..

Re: Dėl fukcijos

minde wrote:
simas wrote:

P.S. Man rodos C/C++ kalbos mėgėjai dar pridėtų 3 variantą - perduoti funkcijai pointer'į į masyvą :)

Tai ir PHP gali perduoti pointerį (nuorodą)..

Taip, žinau, bet čia jau daugiau "C/C++ style". Kažkaip PHP kalboje nelabai dažnai tenka matyti, kad būtų perduodama nuoroda. Nors aš negaliu pasigirti, kad daug matęs :)

Re: Dėl fukcijos

šiaip gana dažnai perduodama, kalbant ne apie "savadarbius guestbook'ų" scriptus, o apie normalias aplikacijas/karkasus/tvs'us.

Toliau, reikia nepamiršti, kad PHP yra "negriežta" programavimo kalba, priešingai negu c/c++. Iš čia išplaukia tie visi globals, ir kiti bajeriai (-;

Re: Dėl fukcijos

b variantas nebeveiks su php6

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Warning: count(): Parameter must be an array or an object that implements Countable in /home/pasokime/domains/mysql.lt/public_html/forumas/include/parser.php on line 820

Re: Dėl fukcijos

Tai reikės globalius kintamuosius keisti statinėmis klasėmis :)