Funktions fehler

  • PHP

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Patrick1993.

    Funktions fehler

    Hallo Community,
    Ich bin gerade am Lernen in PHP mit OOP umzugehen.
    Soweit, sogut. Nun will ich mir mittels JQuery und GET eine PHP Funktion aufrufen.
    Das ganze sende ich von einer index Datei auf eine weitere Datei die sich "functions.php" nennt.
    Dort ist eine Klasse und eine Switch-Case Anweisung drine.

    Nun bekomme ich jedoch wenn ich die Funktion aufrufe folgende Fehlermeldung:
    Non-static method game::erweitern() should not be called statically in <b>C:\xampp\htdocs\functions.php</b> on line 9

    das ganze bezieht sich auf die Switch Anweisung in der functions.php Datei.

    Die JQuery Funktion sieht so aus:

    Quellcode

    1. <script type="text/javascript">
    2. $(document).ready(function() {
    3. $('#buldu').click(function() {
    4. var term = $('#rdb:checked').val();
    5. $.get('functions.php?action=up&id='+term,function(response) {
    6. alert(response);
    7. });
    8. });
    9. });
    10. </script>


    Und die Switch Anweisung in der funktions.php so:

    PHP-Quellcode

    1. switch ($_GET['action'])
    2. {
    3. case 'up':
    4. $id = $_GET['id'];
    5. game::erweitern($id);
    6. break;
    7. }


    die function die dort aufgerufen werden soll, befindet sich in der Klasse "game" und sieht wie folgt aus:

    PHP-Quellcode

    1. function erweitern($id)
    2. {
    3. echo $id;
    4. }


    Hoffe ihr könnt mir auf die Sprünge Helfen

    Die Funktion muss static sein, ansonsten kann sie nur nach Instanziierung der Klasse aufgerufen werden:

    PHP-Quellcode

    1. game->erweitern(bla);


    Dabei ist die Fehlermeldung doch schon recht vielsagend?
    Non-static method game::erweitern() should not be called statically

    "Nicht-statische Methode game::erweitern() sollte nicht statisch aufgerufen werden"
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Wenn ich es mit -> schreibe bekomme ich als fehlermeldung:
    Parse error: syntax error, unexpected T_OBJECT_OPERATOR in C:\xampp\htdocs\functions.php on line 8

    Laut internet muss man dort mit $ arbeiten was ich mir irgendwie nicht so wirklich Vorstellen kann da ich ja aus einer Klasse aufrufen will ...

    Die Funktion muss static sein

    PHP-Quellcode

    1. class game
    2. {
    3. static function erweitern($blubb)
    4. {
    5. }
    6. }


    ansonsten kann sie nur nach Instanziierung der Klasse aufgerufen werden:

    PHP-Quellcode

    1. $wat = new game();
    2. $wat->erweitern("wat");
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Lukas“ ()

    oh static davor schreiben ... wieder was dazu gelernt ...
    Nun geht's