Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z funkcją :(
Forum PHP.pl > Forum > PHP
GENCE
Mam taki problem - napisalem funkcję, która odczytuje plik tekstowy i przekształcająca go w tablicę. W funkcji podaję dwa parametry - nazwę pliku i nazwę tablicy, do której dane mają być zapisane:

[php:1:630401b892]<?php
function czytaj_plik($nazwa_pliku, $tablica)
{
$fp = fopen("./$nazwa_pliku","r");
$ciag_zpliku = fread($fp, 5000);
fclose($fp);
$tablica = explode("<T>", $ciag_zpliku);
return $tablica;
}

//wywolanie funkcji
czytaj_plik("tekst.txt", $abla);

?>[/php:1:630401b892]

Problem polega na tym, że funkcja tworzy tablicę "$tablica" i do niej wrzuca dane - nie tworzy natomiast tablicy "$abla" - czyli tablicy o nazwie podanej w drugim parametrze sad.gif

Chodzi mi o stworzenie takiej funkcji, która odczytywała by podany plik tekstowy i wrzycała go do tablicy o podanej w parametrze nazwie...

Gdzie jest błąd ?
rzseattle
jak dla mnie to albo global (ale juz sam nie ustalisz nazwy zmiennej) albo $zmienna = funkcja($od_czegostam)
spenalzo
Musisz użyć referencji.
[php:1:0863eef60d]<?php
function czytaj_plik($nazwa_pliku, &$tablica)
{
$fp = fopen("./$nazwa_pliku","r");
$ciag_zpliku = fread($fp, 5000);
fclose($fp);
$tablica = explode("<T>", $ciag_zpliku);
return $tablica;
}

//wywolanie funkcji
$abla=array();
czytaj_plik("tekst.txt", $abla);
?>[/php:1:0863eef60d]
GENCE
No nic, chyba bedę musiał zadowolić się takim rozwiązaniem:
[php:1:9bcac563ad]<?php
$abla=czytaj_plik("tekst.txt"); // i usunąć drugi parametr z funkcji
?>[/php:1:9bcac563ad]
jedynie to działa sad.gif

Pozostaje pytanie dlaczego tamta funkcja nie działa ... (nie jest to kwestia użycia zmiennych globalnych)

//pozdrawiam gence
GENCE
O sorry, nie zauwazyłem "&" przy parametrze w funkcji smile.gif
Faktycznie rozwiązania spenalzo działa.
- i to nawet bez:
[php:1:31d03f0b66]<?php
$abla=array();

?>[/php:1:31d03f0b66]

Dzięki smile.gif
spenalzo
No to dobrze, bo myślałem że dzisiaj same głupoty piszę... biggrin.gif

Deklarację zmiennej tablicowej
[php:1:40fe7105e8]<?php
$abla=array();
?>[/php:1:40fe7105e8]
dałem, ponieważ nie byłem pewien, czy bez tego będzie działać przekazywanie przez referencje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.