Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP5 przekazywanie parametrow
Forum PHP.pl > Forum > Przedszkole
gokuf1ghter
Staram sie rpzesiasc z ActionScript 3 na php5 obiektowego. Jedna sprawa to ze ciaglę sie gubię w kodzie, brak jakichkolwiek podpowiedzi do kodu, dziwnej, denerwujacej skladni (raz sie pisze $this->zmienna a innym razem $zmienna => $zmienna2 a jeszcze innym $zmienna) to na dodatek brak konkretnych informacji odnosnie konkretnego bledu.

Mam sobie jedna stronke html i php:

  1. if($kat = new RemoveDir("'./katalog'")){
  2. echo $kat->dirRemove;
  3. }
  4. $kat->readDir();


a tutaj mam sobie taka klase:

  1. <?php
  2.  
  3. Class RemoveDir{
  4.  
  5. var $dirRemove;
  6.  
  7. public function RemoveDir($dirToRemove){
  8.  
  9. $this->dirRemove = $dirToRemove;
  10.  
  11. }
  12.  
  13. public function readDir(){
  14.  
  15. $dir = opendir($this->dirRemove);
  16.  
  17. $files = Array();
  18.  
  19. if($dir){
  20.  
  21. while(false != ($plik = readdir($dir))){
  22.  
  23. array_push($files, $plik);
  24.  
  25. echo($plik);
  26. }
  27.  
  28. }else{
  29.  
  30. echo "nie mozna otworzyc kataslogu";
  31.  
  32. }
  33. }
  34. }
  35.  
  36. ?>


Oczywiscie nie dziala. W kolko wyskakuja jakies problemy. Ten tutaj mowi cos takiego:
Warning: opendir('./katalog') [function.opendir]: failed to open dir: No such file or directory in /home/ [adres] on line 14

Tyle ze jezeli zamiast $this->dirRemove wpisze $dirRemove to nie ma bledu tylko wyskakuje info "nie mozna otworzyc kataslogu" czyli wykonuje sie ta czesc kodu:
}else{

echo "nie mozna otworzyc kataslogu";

}


Nic nie kumam z tego jezyka.... zamiast sie go uczyc, poswiecam mase czasu na szukanie beznensownych bledow w banalnych rzeczach.... Wczesniej 30 min szukalem dlaczego nie dziala mi klasa, gdzie zamiast konstruktora takiego samego jak nazwa (RemoveDir), wpisalem "niby zalecany" _construct ktory oczywiscie traktowalo jak normalna funkcje a nie jak konstruktor (uzywam bluefish`a wersja 2.0.3).

Moje pytanie:

jak przekazac parametry do funkcji,

jak wywolac funkcje w konstruktorze (jezeli w konstruktorze napisze:

  1. public function RemoveDir($dirToRemove){
  2.  
  3. $this->dirRemove = $dirToRemove;
  4.  
  5.  
  6. }

wywala jakis blad.


Dlaczego takie echo sie nie wykona:
  1. public function RemoveDir($dirToRemove){
  2.  
  3. $this->dirRemove = $dirToRemove;
  4. echo "pisze pisze i nic"
  5.  
  6.  
  7. }

skoro owe echo jest w konstruktorze i (teoretycznie) powinno sie wykonac, kiedy w indexie tworze instancje tej klasy.
melkorm
Może zainteresuj się pierw jakimś podstawowym kursem do PHP ?

Zresztą jak ja robiłem coś w AS3 przeskakując z PHP'a to nie miałem żadnych problemów z przesiadką, a jeżeli tak na niego psioczysz to po co się go uczysz smile.gif

@topic:
1. Zapoznaj się jak definiuje się stringi w php, bo masz ewidętnie błąd (stąd pewnie ten błąd z openDir)
2. Co to w ogóle za klasa o_O'
3. var to przeżytek z czasów PHP 4
4. Nazwa konstruktora jak klasy to też przeżytek ... .
5. if($kat = new RemoveDir("'./katalog'")){ - po co ten warunek?
6. Warning: opendir('./katalog') [function.opendir]: failed to open dir: No such file or directory in /home/[adres] on line 14 - no masz eweidętnie warning'a więc o co chodzi? użyj file_exists / is_dir czy coś.
7. echo "pisze pisze i nic" -> a może średnik ?

Ogólnie to zapraszam do tematu Jak poprawnie zadać pytanie i najczęstsze błędy.

P.S. Ta klasa to w ogóle chyba koło obiektówki nie stała, w manualu przy funkcji <span style="font-weight: bold;">rmdir</span> w 1 poście masz ładną funkcję do usuwania katalogów.
P.S2. Na prawdę poczytaj jakieś kursy, albo wróć do AS'a.
Daiquiri
Przenoszę do przedszkola. Proponuję (mimo znajomości AS) zacząć od podstaw, których (chociażby pobieżny) przegląd nie zajmuje nie wiadomo ile czasu, a potrafi ułatwić życie. Proponuję również zainteresowanie manualem.
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.