Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Gültigkeit von Variablen (Anfänger)
Frage
Hallo,
habe folgendes Problem:
Ich definere ein globales array. In einer funktion befülle ich dieses, in einer anderes versuche ich es wieder auszulesen. Das Auslesen funktioniert aber nicht. Das Array ist leer.
Ich verwende php 5.0.3
Hier ein vereinfachter Code:
[code]
<?php
class Klasse
{
$arr = new array();
private function funktionEins()
{
$this->arr[ ] = "a";
$this->arr[ ] = "b";
$this->arr[ ] = "c";
}
public function funktionZwei()
{
for($i = 0; $i<count($this->arr); $i++)
{
echo $this->arr[i];
}
}
}
?>
[/code]
Ich hoffe, mich kann jemand helfen.
Gruß Tom
Antwort 1 von Nessus
Hi,
schaue Dir mal folgende Seite genau an, Du wirst deinen Fehler erkennen.
http://www.php-faq.de/q/q-arrays-mehrdimensional.html
HTH
Nessus
schaue Dir mal folgende Seite genau an, Du wirst deinen Fehler erkennen.
http://www.php-faq.de/q/q-arrays-mehrdimensional.html
HTH
Nessus
Antwort 2 von Ding280
Hallo,
nein, das tu ich nicht.
Kannst du mir das bitte erklären.
Gruß Tom
nein, das tu ich nicht.
Kannst du mir das bitte erklären.
Gruß Tom
Antwort 3 von Nessus
Zitat:
nein, das tu ich nicht.
nein, das tu ich nicht.
????
Zitat:
Kannst du mir das bitte erklären.
Kannst du mir das bitte erklären.
Nö, bei deiner mangelnden Eigeninitiative habe ich keinen Bock zu.
Nessus
Antwort 4 von Ding280
Hallo,
ich habs mir angeschaut und verstehs nicht.
Tut mir leid, wenn ich mich falsch ausgedrückt habe. Ich meinte damit, dass ich meinen Fehler nicht erkenne, nicht dass ich mir das nicht anschaue.
Gruß Tom
ich habs mir angeschaut und verstehs nicht.
Tut mir leid, wenn ich mich falsch ausgedrückt habe. Ich meinte damit, dass ich meinen Fehler nicht erkenne, nicht dass ich mir das nicht anschaue.
Gruß Tom
Antwort 5 von JanVer
@Nessus - Dein Link passt auch nicht zur Frage
Er hat ja nicht nach mehrdimensionalen Arrays gefragt.
@Tom:
Arbeite bislang nur mit PHP4. Private oder Public verwende ich nicht, aber wenn das bei Dir in PHP so läuft, dann kann PHP5 das wohl.
Zugriff auf globale Variablen scheint hier nicht das Problem zu sein. Offensichtlich ist für mich, dass Du angeben musst, welches Element des Arrays ausgegeben werden soll.
Hier ...
echo $this->arr;
müsste es lauten:
echo $this->arr[$i];
Er hat ja nicht nach mehrdimensionalen Arrays gefragt.
@Tom:
Arbeite bislang nur mit PHP4. Private oder Public verwende ich nicht, aber wenn das bei Dir in PHP so läuft, dann kann PHP5 das wohl.
Zugriff auf globale Variablen scheint hier nicht das Problem zu sein. Offensichtlich ist für mich, dass Du angeben musst, welches Element des Arrays ausgegeben werden soll.
Hier ...
echo $this->arr;
müsste es lauten:
echo $this->arr[$i];
Antwort 6 von Nessus
@JanVer
Nein, er passt.
Nessus
Nein, er passt.
Nessus
Antwort 7 von Ding280
Hallo,
vielleicht liegt es auch an etwas anderem.
Hier mal der ganze Code
Gruß Tom
vielleicht liegt es auch an etwas anderem.
Hier mal der ganze Code
<?php
class Content
{
private $durchlaufen = false;
private $datei = "D:\web-docs\Bilder\";
private $standardDir = "D:\web-docs\Bilder";
private $site = "Bilder.php5";
private $ordner = array();
private $dateien = array();
private $bilder = array();
function __construct($dir)
{
$this->directory = $dir;
$this->check();
}
private function check()
{
if(!$this->durchlaufen)
{
$this->durchlaufen = true;
$this->listDirs();
$this->ordner = $this->mySort($ordner);
$this->dateien = $this->mySort($dateien);
$this->bilder = $this->mySort($bilder);
}
}
private function listDirs()
{
$openDir = opendir($this->datei);
while($temp=readdir($openDir))
{
$tempFile = $this->datei.$temp;
if ($tempFile != "." && $tempFile != "..")
{
if(is_dir($tempFile))
{
$this->ordner[ ] = $tempFile;
echo "<br />".$tempFile." ".count($this->ordner);
}
elseif(is_file($tempFile))
{
//TODO isFile;
}
}
}
}
public function setDatei($dat)
{
$this->datei = $dat;
if($this->datei == null)
{
$this->datei = $this->standard;
}
/*else
{
//TODO setDatei
}*/
}
public function getContent()
{
$this->check();
$content = "";
for($i = 0; i<count($this->ordner); $i++)
{
$content .= "<a href="".$this->site."?file=".$this->ordner + "">".$this->ordner."</a><br>
";
}
$content .= "<p>";
//TODO dateien;
return $content;
}
private function mySort($arr)
{
if(count($arr) != 0)
{
sort($arr);
}
return $arr;
}
}
?>
Gruß Tom
Antwort 8 von Ding280
Hallo,
kann mir denn wirklich niemand helfen?
Gruß Tom
kann mir denn wirklich niemand helfen?
Gruß Tom
Antwort 9 von Ding280
Vergesst es, mir wurde anderweitig geholfen.
Antwort 10 von Nessus
@Ding280
1. Hier ist niemand der nur auf deine Fragen wartet, das läuft neben bei, es kann also auch dauern.
2. Wie wurde dir geholfen? Das ist immer gut zu wissen, da hier dadurch ein recht interessantes Archiv entsteht.
Nessus
1. Hier ist niemand der nur auf deine Fragen wartet, das läuft neben bei, es kann also auch dauern.
2. Wie wurde dir geholfen? Das ist immer gut zu wissen, da hier dadurch ein recht interessantes Archiv entsteht.
Nessus
Antwort 11 von JanVer
Hi Tom,
bin gerade mal wieder reingeschneit.
Genau wie Nessus schon sagte
- man hilft, wenn man sich hier aufhält.
Nicht umgekehrt
- man hält sich hier auf und hilft.
Hab im übrigen Deine erste Fragestellung mal mit meiner Antwort hin eben getestet - und es lief.
Wo steckt nun das Problem in Deiner 2. Fragestelltung? Wird ein Fehler ausgeworfen oder kommt nichts an oder ist die Liste unsortiert?
Bitte verlange hier nicht, dass wir ein Programm auf Syntax hin untersuchen, daachd dann nachvollziehen, wofür es gedacht ist und letztendlich den Fehler analysieren.
Und wenn Du das Problem selber löst (oder ein anderer) dann schreib bitte auch dazu, was der Fehler war - es hilft vielleicht mal jemand anderem - (wie Nessus schon sagte).
bin gerade mal wieder reingeschneit.
Genau wie Nessus schon sagte
- man hilft, wenn man sich hier aufhält.
Nicht umgekehrt
- man hält sich hier auf und hilft.
Hab im übrigen Deine erste Fragestellung mal mit meiner Antwort hin eben getestet - und es lief.
Wo steckt nun das Problem in Deiner 2. Fragestelltung? Wird ein Fehler ausgeworfen oder kommt nichts an oder ist die Liste unsortiert?
Bitte verlange hier nicht, dass wir ein Programm auf Syntax hin untersuchen, daachd dann nachvollziehen, wofür es gedacht ist und letztendlich den Fehler analysieren.
Und wenn Du das Problem selber löst (oder ein anderer) dann schreib bitte auch dazu, was der Fehler war - es hilft vielleicht mal jemand anderem - (wie Nessus schon sagte).

