ergebnis von count() global gültig zu machen

  • also ich hab mich jetzt entschlossen ein bereits geschriebenes javascript von mir umzusetzen in php (denn da is auch nen array dabei)
    ich hab die funktion count() gefunden um zu zählen, wieviel in meinem array drin is, des klappt auch wunderbar ausserhalb jeder funktion.

    jedoch innerhalb einer funktion is des ding unbekannt..
    hab das array hier:


    und die länge von matrix wird mit 7 angezeigt, was ja soweit richtig ist..

    dann habe ich folgende funktion:

    ich bin bisher davon ausgegangen, dass eine variable global ist wenn sie ausserhalb einer funktion steht...
    und man sagt innerhalb einer funktion "global $variable", um damit zu sagen, dass man diese globale variable benutzen will...

    jedoch bringt mir:

    Code
    global $mlength;
    echo "matrixlänge: ".$mlength ."
    ";


    kein ergebnis

    hat mal jemand nen zaun zum winken? ;)

    irgendwie steh ich grad gut aufm schlauch-.-

  • Du hast in der Funktion auch nicht $matrix zur Verfügung.

    Ein Tipp: vermeide globale Variablen, denn diese machen ein Script nur unübersichtlich und extrem schwer zu debuggen.

    Übergebe der Funktion das Array, dann hast du alles, was du brauchst. In deinem Fall musst du noch nicht mal die Länge kennen, denn du kannst auch foreach benutzen.

  • mmmh also ich brauch die matrix in zwei funktionen.. von daher dachte ich die global zu machen wäre sinnvoll (ich kenn die handhabung globaler variablen ja nur von java/javascript- und da is des wesentlich einfacher!)
    und wie kann ich denn die geschachtelten forschleifen zu ner foreach-schleife machen?
    komm ich dann denn so an die werte von i und j? die brauch ich nämlich damit das mit dem polybios-chiffre funzt...

    ich hab grad mal probiert die matrix erstmal so zu übergeben, was auch nich hinhaut..
    ich poste mal die beiden funktionen, wie ich sie akut benutze.
    zum grössten teil hab ich auch scho auf globale variablen verzichtet.. jedoch mit der matrix bekomm ich des net hin

    die echo-befehle dienen zur zeit nur zur kontrolle.. nicht zur letztlichen ausgabe!!

  • function verschluesseln($wert)

    Wo ist da $matrix?

    Du solltest während der Entwicklung eines Scriptes diese beiden Zeilen immer am Anfang haben:

    error_reporting(E_ALL);
    ini_set("display_errors", true);

    oder das direkt in der php.ini in deiner Entwicklungsumgebung einstellen.

  • also errors werden immer angezeigt.. und ich hab auch grad meinen fehler gefunden.. ich hab ne funktion auf das array ausgeführt, noch bevor das array initialisiert war :smilie101: :smilie101: :kopfpatsch: :kopfpatsch: :shocking: :stars:

    jetzt klappt des ding so wie es soll...

    den fehler konnte hier auch keiner finden, weil ich diesen teil gar nich gepostet hatte (war mir zu sicher das des richtig ist...)