echo $begrüßung;
Hi, ich habe ein Problem mit Operatoren...
Ich versuche mit einer Reihe von if-elseif-else Anweisungen eine Art reaktiver Intelligenz umzusetzen (Eliza).
Dummerweise ignoriert mein Script die Schlüsselworte wenn sie nicht an Erster Stelle in dem Inputfeld stehen...
Gebe ich "Test ob es klappt ein" kommt entsprechend die Antwort $a003.
Gebe ich nun aber "Mal sehen ob es klappt, Test" ein, dann wird immer Antwort $a000 ausgespuckt. Welchen Operator muss ich einsetzen damit das Schlüsselwort akzeptiert wird, unabhängig von der Position im Satz?Grüße
Ingo<?
Dein Script wird nicht überall laufen. Verwende doch besser nicht die short_open_tags sondern die Langform <?php
Stichworte
$_001 = ("Test");
$_001 = ("Test2");
$_001 = ("Test3");
Hier weist du dreimal nacheinander der gleichen Variable verschiedene Werte zu. Außerdem sind die Klammern hier überflüssig. Was hattest du eigentlich vor?
if($frage = Test) { echo "$a003 "; }
Das ist kein Vergleich sondern eine Zuweisung. Weiterhin wird die Konstante Test sicherlich nicht definiert sein. Wenn Test ein String sein soll, dann schließe ihn in '' oder "" ein. Den Bedeutungsunterschied zwischen "" und '' findest du im Handbuch-Kapitel zu Strings
Das Ergebnis der Zuweisung ist gleich dem Wert der Zuweisung. Da Test von PHP automatisch in einen String konvertiert wird und der boolsche Wert dieses Strings true ist ... den Rest kannst du dir sicherlich denken :-)
Bitte schalte das error_reporting zum Entwickeln auf E_ALL, dann wirst du zwar den Zuweisung-statt-Vergleich-Fehler nicht finden, aber die Verwendung der nicht definierten Konstante wird dann bemängelt. Und noch ein paar mehr Anfänger- und Tippfehler.
Zum Finden von Teilstrings in Strings gibt es verschiedene String-Funktionen wie z.B. strpos()
echo "$verabschiedung $name";