Ankündigung

Einklappen
Keine Ankündigung bisher.

Wette gegen ChatGPT: Wer kann Code liefern für Fragestellung

Einklappen

Neue Werbung 2019

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

  • Wette gegen ChatGPT: Wer kann Code liefern für Fragestellung

    Hallo, ich habe gerade mal chatGPT ausprobiert. Fehlanzeige.

    Meine Frage war wie folgt:
    Gegeben sei eine abstrakte Klasse mit statischen Methoden. Schreibe einen PHP Code, der nur die Methoden listet, die aus einem bestimmten Trait stammen.

    ChatGPT hat 8 Anläufe genommen, die allesamt nicht funktioniert haben.

    Ich habe daraufhin die Lösung skizziert, woraufhin eine 9. Lösung kam, die fast funktioniert hätte, hätte chatGPT nicht am Schluss nochmal denselben blöden Fehler eingebaut, der in der ersten Lösung schon idiotisch war. Um nicht zuviel zu verraten, will ich die Lösung von ChatGPT und den Fehler hier erst mal noch nicht posten.

    Das hat mich - mit meinen Prüfungen - ca. 1h Zeit gekostet. In dieser Zeit hätte ich locker meine eigene Lösung (die ich GPT ja schlussendlich vorgeben mußte um überhaupt zum Ziel zu kommen) auch selbst "durch Code ausformulieren" können.

    Frage nun also an die Profi's hier: Wie würdet ihr die o.g. Fragestellung lösen? Evtl. kommt dabei ja sogar eine bessere Klsung raus, als "meine" ist ...?
    Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.

  • #2
    wo ist jetzt die konkrte PHP code Frage oder hast du nach über 600 Posts immer noch nicht kapiert dass es einfach nicht nett ist hier einfach irgendwo was reinzuwerfen ?

    Kommentar


    • #3
      Zitat von tomBuilder Beitrag anzeigen
      wo ist jetzt die konkrte PHP code Frage oder hast du nach über 600 Posts immer noch nicht kapiert dass es einfach nicht nett ist hier einfach irgendwo was reinzuwerfen ?
      [off on] … bei der Menge gleichgearteter Beiträge wie Dein heutiger, wäre ich auch schon in so kurzer Zeit bei über 4.820 Beiträgen. Weniger ist mitunter mehr! Denk mal drüber nach VOR dem nächsten Posting![/off off]

      Kommentar


      • #4
        Zitat von VT1816 Beitrag anzeigen

        [off on] … bei der Menge gleichgearteter Beiträge wie Dein heutiger, wäre ich auch schon in so kurzer Zeit bei über 4.820 Beiträgen. Weniger ist mitunter mehr! Denk mal drüber nach VOR dem nächsten Posting![/off off]
        moin, auch wenn ich immer offen für kritik bin, anfangen kann ich damit in dem fall nichts.

        sind viele beiträge gut oder schlecht ?
        für wen spielt die anzahl überhaupt eine rolle ?
        inwiefern gehst du davon aus, das ich nicht darüber nachdenke und wie könnte ich an deinem beitrag erkennen dass du just dieses hast ?

        wegen deinem off[on/off] ?
        und inwieweit macht diese völlige sinnlosdiskussion überhaupt einen mehrwert für andere foristen ?


        Kommentar


        • #5
          Meinst Du so?
          PHP-Code:
          <?php trait ExampleTrait { public static function methodFromTrait1() {} public static function methodFromTrait2() {} } trait AnotherTrait { public static function methodFromAnotherTrait() {} } abstract class AbstractClass { use ExampleTraitAnotherTrait; public static function methodNotFromTrait() {} } function getStaticMethodsFromTrait(string $classNamestring $traitName): array { if (!class_exists($className)) { throw new InvalidArgumentException("Class $className does not exist."); } if (!trait_exists($traitName)) { throw new InvalidArgumentException("Trait $traitName does not exist."); } $methods = []; $classReflection = new ReflectionClass($className); $traitReflection = new ReflectionClass($traitName); foreach ($traitReflection->getMethods() as $traitMethod) { if ($traitMethod->isStatic()) { $methods[] = $traitMethod->getName(); } } return array_values(array_filter($methods, function ($methodName) use ($classReflection) { return $classReflection->hasMethod($methodName) && $classReflection->getMethod($methodName)->isStatic(); })); } // Beispiel verwenden: $className = AbstractClass::class; $traitName = ExampleTrait::class; $staticMethods = getStaticMethodsFromTrait($className, $traitName); echo "Static methods from trait '$traitName' in class '$className':\n"; print_r($staticMethods);
          Von der Vision zur Conversion: <href="https://www.sodah-webdesign-agentur.de/">Webdesign Agentur Mainz</a>

          Kommentar


          • #6
            @sodah: ja, das meinte ich ... war etwas schwer, Deinen Code erst mal zu formatieren, aber ja, sowas war gefragt. ChatGPT hat x-Anläufe mit m.E. recht umstänclichem Code versucht. Und am Ende war keines der Ergebnisse funktionstüchtig.

            Nach wie vor ergibt sich eine Fehlausgabe, wenn derselbe Funktionsname AUCH in der Klasse verwendet wird und damit die Funktion des Thread "überschrieben" hat. Das habe ich auch in meiner Lösung:

            Ich habe kurzerhand eine temporäre Testklasse gebaut, die NUR den gefragten Trait per "use" einbindet, um dann ähnlich wie Du dir Methoden auszugeben.

            ICh denke, man müßte wohl Zusätzlich die Codezeile und das file, wo eine Methode definiert wurde, checken und dabei prüfen, ob diese innerhalb einer Klassen-Deklaration ist. Das Problem ist offenbar (mangels Unterstützung durch die Reflections) nicht ganz trivial.
            Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.

            Kommentar

            Lädt...
            X