Ankündigung

Einklappen
Keine Ankündigung bisher.

ERROR: Only variable references should be returned by refere

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ERROR: Only variable references should be returned by refere

    hi!

    eigentlich gehöre ich schon zu den fortgeschrittenderen php-proggern aber hierbei geht mir das wissen aus!

    ich habe in einer classe foldende function stehen:

    Code:
        function & getParameter ($name, $value = 'NULL')
        {
            if (isset($this->params[$name]))
            {
                return $this->params[$name];
            } else if ($value != 'NULL')
            {
                return $value;
            }
        $null = NULL;
    
            return $null;
        }
    offline funkt das auch alles bei mir aber wenn ich es auf meinem server probiere bekomme ich folgende fehlermeldung:

    Only variable references should be returned by reference

    und als zeile gibt er mir die zeile mit dem "return $null;" an

    kann mir jemand sagen was da nicht geht? oder was ich falsch mache?!?!

    wäre sehr nett!


    MfG

    Jens76

  • #2
    Kann ich nicht repoduzieren.
    Keine Fehler, keine Warnung mit
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors'true);

    class 
    ABC
    {
        protected 
    $params = array();
        
        function & 
    getParameter ($name$value 'NULL')
        {
            if (isset(
    $this->params[$name]))
            {
                return 
    $this->params[$name];
            } else if (
    $value != 'NULL')
            {
                return 
    $value;
            }
            
    $null NULL;
            return 
    $null;
        } 
    }

    $abc = new ABC;
    $r $abc->getParameter('');
    ?>
    php 5.1.2, cli, windows xp

    Was benutzt Du?

    Kommentar


    • #3
      ich nutze PHP Version 4.4.1

      und ich kann es auch nicht nachvollziehen!

      aber eigentlich müßte es gehen oder?

      Kommentar


      • #4
        Mit 4.4.1-pl1 habe ich es eben auch versucht. Kein Fehler, keine Warnungen.
        Probier mal mein Testskript aus. Es scheint nicht an diesem Codeausschnitt zu liegen.

        Kommentar


        • #5
          das geht auch nicht!

          hab es für php 4.x modifiziert

          PHP-Code:
          <?php 
          error_reporting
          (E_ALL); 
          ini_set('display_errors'true); 

          class 
          ABC 

              var 
          $params = array();
               
              function & 
          getParameter ($name$value 'NULL'
              { 
                  if (isset(
          $this->params[$name])) 
                  { 
                      return 
          $this->params[$name]; 
                  } else if (
          $value != 'NULL'
                  { 
                      return 
          $value
                  } 
                  
          $null NULL
                  return 
          $null
              }  


          $abc = new ABC
          $r $abc->getParameter(''); 
          ?>
          der selbe fehler in der return $null; zeile

          Kommentar


          • #6
            Seltsam, ich bekomme da wie gesagt weder Fehlermeldungen noch Warnungen.
            Und wenn ich am Ende noch ein var_dump($r); einbaue, dann wird mir das NULL auch angezeigt, problemlos.

            Kommentar


            • #7
              soweit ich es bis jetzt rausbekommen habe spinnt es nur wenn ich selber variablen in der function initiere!

              gebe ich ein $this->wert aus und wert existert bi dahin nicht dann gehts komischerweise!

              Kommentar


              • #8
                Wenn es tatsächlich um die Zeile return $null; geht, müsste sich das Beispiel auf
                PHP-Code:
                <?php
                function &getParameter($name$value 'NULL'

                    
                $null NULL
                    return 
                $null
                }  

                $f getParameter('');
                ?>
                reduzieren lassen.
                Ist das der Fall?

                Kommentar


                • #9
                  hängt warscheinlich das du variablen innerhalb referenzierter
                  funktionen als static deklarieren musst um mit ihnen zu arbeiten
                  oder so

                  Kommentar


                  • #10
                    Zitat von Clint
                    hängt warscheinlich das du variablen innerhalb referenzierter
                    funktionen als static deklarieren musst um mit ihnen zu arbeiten
                    oder so
                    Hä?

                    Kommentar


                    • #11
                      das geht aber wieder! funkt alles nur in der class nicht!

                      das ist ja das komische

                      Kommentar


                      • #12
                        na dann bezweifel ich, dass es um diese Zeile geht.
                        Gut, packen wir wieder eine Klasse drumherum

                        PHP-Code:
                        <?php
                        class ABC
                        {
                            function &
                        getParameter($name$value 'NULL'
                            { 
                                
                        $null NULL
                                return 
                        $null
                            }  
                        }

                        $abc = new ABC;
                        $r $abc->getParameter('');
                        var_dump($r);
                        ?>
                        Fehler?

                        Kommentar


                        • #13
                          @ Clint und wie soll ich das machen?

                          Kommentar


                          • #14
                            irgendwas war da mit referenzierten rückgabewerten von
                            funktionen und den in der funktion erstellten variablen

                            Kommentar


                            • #15
                              kein fehler wenn eine class darumherum ist!


                              @clint:
                              kennst dich da auch nciht genauer aus?

                              Kommentar

                              Lädt...
                              X