Antworten auf deine Fragen:
Neues Thema erstellen

geschweifte klammern in php?

_tnt_

pixel!

tach,
für was sind die geschweiften klammern bei einer echo ausgabe?

Code:
echo "Größe: {$mehr_info['size']} Byte<br/>";

lg
 

sokie

Mod | Web

AW: geschweifte klammern in php?

bei einer echo-Ausgabe wie der führen die dazu, dass der Teil in den Klammern zuerst ausgeführt wird (also zunächst der wert von $mehr_info['size'] aus dem Array gelesen) und dann alles ausgegeben wird.
 

_tnt_

pixel!

AW: geschweifte klammern in php?

ganz versteh ich das noch nicht. warum geht das ohne die klammern nicht. bei echo $xyz brauch ich für die variable ja auch keine geschweiften klammern.
 

exo

Aktives Mitglied

AW: geschweifte klammern in php?

hmm und ehrlich gesagt, hör ich das grad auch zum ersten mal ôÔ.... ist es nicht egal ob ich das mit od. ohne die {} schreibe... der wert wird doch so oder so ausgelesen und da das echo eh auf sequenzieller basis arbeitet (also nix mit objektorientiert zu tun hat) isses ja auch wieder peng...
mhhh... oder benutzt das script was du da hast irgend nen template-system?
 

dalmarog

Nicht mehr ganz neu hier

AW: geschweifte klammern in php?

Soweit ich weiss geht eine Zeile Code auch ohne geschweifte Klammer, nur wenn du in dieserm Befehlsblock mehr als eine Zeile Code ausführen willst brauchst du unbedingt die Klammern!
 

_tnt_

pixel!

AW: geschweifte klammern in php?

das ist der ganze code.

Code:
<?php
				
	$verzeichnis = '.';
	$verzeichnis_handle = opendir($verzeichnis);

	while($datei = readdir($verzeichnis_handle))
		{
			
			if(is_dir($datei))
				{
					$art='verzeichnis';
				}
			else if(is_file($datei))
				{
					$art='datei';
				}
				
			echo "$art: $datei <br />";
			
			$mehr_info = stat($datei);
			echo "Größe: {$mehr_info['size']} Byte<br/>";
			echo 'Datum: ' . date("d.m.y h:i:s", $mehr_info['atime']);
			echo '<hr/>';
		}
	
?>

wenn ich die klammern nicht mache, dann geht es nicht.
 

Duddle

Posting-Frequenz: 14µHz

AW: geschweifte klammern in php?

Du greifst auf ein Array zu. Da ist er nicht klug genug, um den Unterschied zwischen Variable und echtem Text zu erkennen. Da musst du dann entweder die {} nehmen, oder eben den String unterbrechen und die Variable normal einfügen.


Duddle
 

sokie

Mod | Web

AW: geschweifte klammern in php?

Soweit ich weiss geht eine Zeile Code auch ohne geschweifte Klammer, nur wenn du in dieserm Befehlsblock mehr als eine Zeile Code ausführen willst brauchst du unbedingt die Klammern!

einfach mal ausprobieren, dann muss man nicht raten.

Code:
echo "Ausgabe: $_SERVER['DOCUMENT_ROOT']";
-> Fehlermeldung

Code:
echo "Ausgabe: {$_SERVER['DOCUMENT_ROOT']}";
-> Ausgabe: E:/apachefriends/xampp/htdocs (zB)
 

_tnt_

pixel!

AW: geschweifte klammern in php?

Du greifst auf ein Array zu. Da ist er nicht klug genug, um den Unterschied zwischen Variable und echtem Text zu erkennen. Da musst du dann entweder die {} nehmen, oder eben den String unterbrechen und die Variable normal einfügen.


Duddle

kannst du mir das näher erklären?

ech "text text text $variable text text text";
das ist eine normal ausgabe mit text und variable - das versteht er ja.

wo ist beim array jetzt der unterschied. was versteht er da nicht?
 

Duddle

Posting-Frequenz: 14µHz

AW: geschweifte klammern in php?

Kürzen wir das Ganze ab: die Syntax erlaubt eben nur diese Varianten. Mehr muss man garnicht wissen.


Duddle
 

saila

Moderatorle

AW: geschweifte klammern in php?

Hi,

um das ganze noch etwas zu ergänzen.
Code:
echo "Das ist ein $wert";
/* oder */
echo "Das ist ein {$wert}";
/* was letztlich das gleiche ist */

wird von PHP-Parser aus dem Grunde erkannt, weil es sich um doppelte Anführugnszeichen handelt und der Parser somit den String erneut durchläuft, um Escape-Folgen und somit auch evtl. gesetzte Variablen zu erkennen und umzusetzen.

Während im folgenden Beispiel:
Code:
echo 'Das ist ein $wert';

der PHP-Parser von einem fertigen String ausgeht und diesen nicht mehr gesondert parst.

Das bedeutet wiederum, wenn man Perfomance-Optimiert entwickeln möchte, wählt man letztlich für Ausgaben die einfachen Anführungszeichen für print oder echo, weil der PHP-Parser den sogenannten String nicht erneut parsen muss. Dies erspart je nach Stringlänge (welche egal wie lang sein kann, solange der Timeout nicht greift) eben enorm Zeit ;)
 

saila

Moderatorle

AW: geschweifte klammern in php?

am besten jede variable in { } setzen, dann gibts keine probleme.

Naja - könnte man lesen....

Wenn es um die Ausgabe in Scriptsprachen geht, wird/sollte in der Regel 'bla '. $var .' rest'; verwendet werden, Es macht keinen Sinn, php zum doppelten Parsen zu bewegen, was letztlich Zeit kostet.
 

crx_ed9

Noch nicht viel geschrieben

AW: geschweifte klammern in php?

Die Differenzierung die hier gefragt wurde:

entweder man "Zerschneidet" einen string
PHP:
$foo="Der Serverpfad lautet:".$_SERVER['DOCUMENT_ROOT']."<br>";

oder man setzt Klammern und erspart sich das "Zerschneiden", da PHP erst den Inhalt der {}Klammern abarbeitet und dann den ursprünglichen Echo Befehl.

PHP:
$foo="Der Serverpfad lautet:{$_SERVER['DOCUMENT_ROOT']}<br>";
/** gesehen, die Verbindungspunktierungen ('.$var.') sind weg 
 *   und dadurch wirds einfacher bei großen Strings... oder zu zerlegst
 *   gerne, dann ist das natürlich auch kein Problem.
 **/

Oder um es ganz einfach zu formulieren, die geschweiften Klamern ersparen dir das zerlegen von Strings und vereinfachen dir die Programmierung ;)

Was nun Performanter ist, kann ich dir nicht sagen, hierzu schreibe dir bitte ein Script in Microtime, dann siehste es.

Grüße
 

netbandit

Aktives Mitglied

AW: geschweifte klammern in php?

Wer schon zerlegt, sollte auch so konsequent sein und statt Doppelte-Anführungszeichen -> Einfache-Anführungszeichen verwenden.
 

saila

Moderatorle

AW: geschweifte klammern in php?

Wenn mir jemand erklären kann, was für ein Vorteil des "zerschneiden" und wieder zusammensetzens (nach hier vorherschendem Wortlaut zu entpsrechen) zur Ausgabe, welche im Grunde von PHP per echo oder print zu erfolgen hat, der melde sich bitte noch einmal mit entsprechender Erläuterung.

Nur weil etwas im Scripting "funktioniert" besagt dies noch lange nicht, dass es richtig ist. Und weil das Script evtl. kurz oder klein ist, mag sich dies nicht in der Performance großartig bemerkbar machen. Allerdings - gewöhnt man sich "falsches" scripten an, wird sich dies früher oder später rächen. Sowohl in der Performance als auch im Script selbst!

Und zum guten Schluss - wo beim php-Konsortium findet man eine Seite, welche diese Vorgehensweise empfiehlt?
 

Taharkas

Noch nicht viel geschrieben

AW: geschweifte klammern in php?

Ich hab mir persönlich angewöhnt jeden String, der keine Variablen enthält, in doppelten Anführungszeichen zu schreiben. Sobald ich im Sting auch nur eine Variable ausgeben möchte, nehme ich einfache Anführungszeichen und trenne sauber.

Eine interessante Lektüre dazu ist PHP Coding Standard

...sollte ich vlt. auch mal wieder reinschauen.
 

netbandit

Aktives Mitglied

AW: geschweifte klammern in php?

Wen es interessiert: Ich habe mal 4 Varianten durchgemessen; 10*500.000 echo's. Hier mal die die 4 gemessenen Möglichkeiten und deren Durchschnitt (Aufsteigend sortiert)

Variante 1 (0,5166129827 Sekunden):
PHP:
echo $s1 . ' sagt mal ' . $s2 . '!<br>';
Variante 2 (0,5182836533 Sekunden):
PHP:
echo $s1 . " sagt mal " . $s2 . "!<br>";
Variante 3 (0,5288438559 Sekunden):
PHP:
echo "$s1 sagt mal $s2!<br>";
Variante 4 (0,5329637527 Sekunden):
PHP:
echo "{$s1} sagt mal {$s2}!<br>";
$s1 und $s2 habe ich vorher mit folgendem gefüllt:
PHP:
$s1='PSD-Tutorials';
$s2='Hallo';
Welches davon die "Richtigere" ist, k.A. :uhm:
Ist mir auch eigentlich egal, solange ich nirgends lese, dass eine davon grundsätzlich falsch ist. Versuche mir aber schon eine Weile die erste Variante anzugewöhnen - nehme aber auch immer wieder gerne die Nr. 2 (z.B. wenn ich die einfachen Anführungszeichen im String brauche) :D

Grüße :)
 

saila

Moderatorle

AW: geschweifte klammern in php?

Hi,

mir ist es grundlegend wurscht, wie jeder sein Script schreibt und dokumentiert oder gar dadurch eine negative Performance erziehlt. Insbesondere dann, wenn die Appl. eine mittlere Größe erreicht.

Wer schon einmal mit mehreren an einem Projekt gearbeitet hat, wird immer die z.B. von netbandit getestete Variante 1 verwenden.

Was ich Verteidige ist grundlegender Misst zu produzieren. Insbesodere dann, wenn man letztlich php zu einem Vorgehen zwingt, was nicht sein muss.

@netbandit

ob 1 oder 2 kann gleich sein. Allerdings kommt man durch 1 nie in die Verlegenheit, plötzlich von 2 auf 1 dann doch wechseln zu müssen ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.620
Beiträge
1.538.373
Mitglieder
67.544
Neuestes Mitglied
janusbarman
Oben