Warum werden Strings mal mit "" und mal mit ' ' gebildet?

Claas M

Erfahrenes Mitglied
Moin.

Ich hatte soeben das Problem, dass ich einen Ordner erstellen wollte aber schon bekloppt wurde.

Wenn ich in Dreamweaver mit mkdir( anfange, gibt er mir aus, was ich alles dazuschreiben kann. Als namen sagt er irgendwas mit String, gut, er erwartet eine Zeichenkette. Aber mkdir("blafasel"; 0777) macht er nicht, wieso? Es ist doch ein String...

Ein ändern der Funktion in mkdir('blafasel', 0777) brachte dann die lang ersehnte Rettung.

Nun meine Frage: Wiseo sond Strings mal mit " " und mal mit ' ' definiert?
Gibts es da irgendwelche Eselsbrücken, die man sich merken kann oder besondere Ausnahmen?

Ich würde mich über hilfreiche Antworten freuen
 
Also das einzige was mir dazu einfällt, ist mit folgenden Beispiel vielleicht selbsterklärend. :)

PHP:
<?php
  $msg = "Hallo";

  echo "$msg Welt!";

  // Augabe = Hallo Welt!

  echo '$msg Welt!';

  // Ausgabe = $msg Welt!

?>

Wenn nicht einfach fragen =)
 
Du hast bei dem ersten Funktionsaufruf in den Kllammern ein Hochkommata zu stehen.. somit ist für den PHP-Interpreter dort ein Umbruch ( Funktionsende und neue Funktion beginnt )

MFG
Sandro
 
Die mit einfachen und doppelten Anführungszeichen ausgezeichneten Zeichenketten werden von PHP unterschiedlich verarbeitet. So wird der ausgezeichnete Inhalt bei doppelten Anführungszeichen zusätzlich verarbeitet und Vorkommen von Variablen, maskierten Steuerzeichen (\n, \t, etc.) und weiteren speziellen Zeichensequenzen durch die jeweiligen Zeichen ersetzt. Die im jeweiligen Kontext gültigen Metazeichen müssen jedoch in beiden Fällen maskiert werden.
Das Kapitel über Zeichenketten des PHP-Handbuchs gibt noch zusätzlich hilfreiche Auskunft über dieses Thema. Und obwohl es anfangs verwirrend klingen mag, ist es eigentlich recht plausibel nachvollziehbar.
 
@Sneaky: Nundenn, dann hätte ja mkdir("$stringname"; 0777); en sollen, nunja, so bin ich schlauer geworden und weiß nun, wie ich mich zu entscheiden habe ;)
 
Warum setzt du diese eine Variable denn überhaupt in Anführungszeichen?

Ausserdem werden Parameter mit einfachen Kommata getrennt.

Code:
mkdir("$stringname"; 0777);

Das siehst nicht nach einem Komma aus. ;)

Würd ja sagen, dass du dich hier nur vertippt hast, aber da du es bereits 2 mal so geschrieben hast, erwähn ichs mal lieber. ;)
 
Hm...ich würd pauschal sagen vertippt. Ist wohl im Blut Strings so zu beenden ;)

Ich denke, dass er mir einen Syntaxfehler hätte ausspucken müssen, oder?
Und zu dem warum...Naja ich traue mir schon einiges zu aber wenn Dreamweaver sagt, dass da ein String hin muss...ist wohl das sogenannte gefährliche Halbwissen ;)

Gruß Claas
 
Zurück