Anfängerproblem: Array?
Adrian
- php
0 wahsaga0 Hopsel
Hallo!
Ursprünglich war gedacht, dass ich einfach den code für width und height einfüge. allerdings komme ich nicht so ganz klar, nachdem ich eingesetzt habe:
<img alt="blabla" <?php image_size("../pictures/layout.gif") ?> />
Ich finde den Fehler nicht in folgendem Code, es wird immer angezeigt:
Parse error: parse error, unexpected '[', expecting ',' or ';'
function image_size($imglocation) {
echo "src=\"".$imglocation."\" ";
echo getimagesize($imglocation)[3];
}
Mit freundlichen Grüßen,
Adrian
hi,
echo getimagesize($imglocation)[3];
Trenne das mal auf:
$bildmasse = getimagesize($imglocation);
echo $bildmasse[3];
gruß,
wahsaga
Guten Tag!
Trenne das mal auf:
$bildmasse = getimagesize($imglocation);
echo $bildmasse[3];
Gute Idee, funktioniert aber leider bei mir nicht... :( hab ich auch schon probiert...
Mit freundlichen Grüßen,
Adrian
Hi,
echo getimagesize($imglocation)[3];
Trenne das mal auf:
$bildmasse = getimagesize($imglocation);
echo $bildmasse[3];
warum ist das eigentlich notwendig?
Schöne Grüße
Julian
hi,
warum ist das eigentlich notwendig?
Ich denke mal deshalb, weil Ausdrücke dieser Art von rechts nach links ausgewertet werden - und _bevor_ getimagsize() ein Array zurückgegeben hat, gibt es nun mal nichts, worauf man indexbasiert zugreifen könnte.
gruß,
wahsaga
Hi,
warum ist das eigentlich notwendig?
Ich denke mal deshalb, weil Ausdrücke dieser Art von rechts nach links ausgewertet werden - und _bevor_ getimagsize() ein Array zurückgegeben hat, gibt es nun mal nichts, worauf man indexbasiert zugreifen könnte.
danke für die Erklärung. Macht das der Python- oder Perl-Parser z. B. auch von rechts nach links?
Schöne Grüße
Julian
Hi Julian!
warum ist das eigentlich notwendig?
Ich denke mal deshalb, weil Ausdrücke dieser Art von rechts nach links ausgewertet werden - und _bevor_ getimagsize() ein Array zurückgegeben hat, gibt es nun mal nichts, worauf man indexbasiert zugreifen könnte.
danke für die Erklärung. Macht das der Python- oder Perl-Parser z. B. auch von rechts nach links?
Also in Python könnte man das sehr wohl so schreiben, zum Beispiel:
for i in range(len(lines)):
# hier kann man nun direkt auf das erste Listenelement zugreifen,
# ohne dass man lines[i].split(':') zuerst einer weiteren Variable
# zuweisen müsste
if lines[i].split(':')[0] == self.__username:
print 'User is known'
else:
print 'User is not known'
Ich persönlich sehe das ein als einen großen Vorteil an, da man sich so einfach die Verwendung weiterer, unnütziger Variablen spart und die Python-Variante zudem wesentlich schneller geschrieben ist.
Grüße,
Fabian St.
Hallo Fabian,
warum ist das eigentlich notwendig?
Ich denke mal deshalb, weil Ausdrücke dieser Art von rechts nach links ausgewertet werden - und _bevor_ getimagsize() ein Array zurückgegeben hat, gibt es nun mal nichts, worauf man indexbasiert zugreifen könnte.
danke für die Erklärung. Macht das der Python- oder Perl-Parser z. B. auch von rechts nach links?
Also in Python könnte man das sehr wohl so schreiben, zum Beispiel:
for i in range(len(lines)):
# hier kann man nun direkt auf das erste Listenelement zugreifen,
# ohne dass man lines[i].split(':') zuerst einer weiteren Variable
# zuweisen müsste
if lines[i].split(':')[0] == self.__username:
print 'User is known'
else:
print 'User is not known'
>
> Ich persönlich sehe das ein als einen großen Vorteil an, da man sich so einfach die Verwendung weiterer, unnütziger Variablen spart und die Python-Variante zudem wesentlich schneller geschrieben ist.
danke für das Beispiel. Python ist eine sehr schöne Sprache, wie ich finde, obwohl ich PHP weitaus besser programmiere...
Schöne Grüße
Julian
--
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rich Cook
<http://derjulian.net>
你好 wahsaga,
warum ist das eigentlich notwendig?
Ich denke mal deshalb, weil Ausdrücke dieser Art von rechts nach links
ausgewertet werden - und _bevor_ getimagsize() ein Array zurückgegeben
hat, gibt es nun mal nichts, worauf man indexbasiert zugreifen könnte.
Naja, das stimmt nicht so recht. Da sitzt einfach nur ein Parser hinter,
der das prüft - und dieser Fall ist nunmal verboten worden. Vielleicht,
weil die Programmierer das nicht bedacht haben, vielleicht auch aufgrund
von Prioritäts-Problemen.
Wie ein Ausdruck ausgewertet wird, hängt an der Operator-Rangreihenfolge.
Beispiel: $a = 10 + 5 + 7 + 3; Intern wird daraus (abhängig vom
Parser-Typen) entweder
=
$a +
10 +
5 +
7 3
oder
=
+ $a
+ 10
+ 5
3 7
Zuerst wird der unterste Knoten ausgewertet, danach der darüber, etc, pp.
Die Reihenfolge der Auswertung hat also nur sekundär etwas damit zu tun,
wie herum ein Parser parsed.
Der Ausdruck echo getimagesize($imglocation)[3]; müsste also wie folgt
geparsed werden:
echo
[]
getimagesize($imglocation) 3
Vermutlich geht das auch, wenn man (getimagesize($imglocation))[3] schreibt.
Ich könnte mir noch vorstellen, dass, wenn dieser Fall erlaubt wird, die
Grammatik nicht mehr eindeutig ist für diesen Parser-Typen. Heisst, wenn
getimagesize($imglocation)[3] geschrieben wird, was ist dann gemeint? Es
könnte ja auch
[]
getimagesize ($imglocation) 3
gemeint sein.
再见,
克里斯蒂安
Hi Adrian!
Ich bin erstaunt, dass du immer noch keine Hilfe bekommen hast. :)
Der Fehler liegt in dieser Zeile:
<img alt="blabla" <?php image_size("../pictures/layout.gif") ?> />
Es fehlt ein ";". Na? ;-)
MfG H☼psel
--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
[Selfcode](http://community.de.selfhtml.org/fanprojekte/selfcode.htm): ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
你好 Hopsel,
Der Fehler liegt in dieser Zeile:
<img alt="blabla" <?php image_size("../pictures/layout.gif") ?> />
>
> Es fehlt ein ";". Na? ;-)
Das ist leider falsch. Das Semikolon kann weggelassen werden, wenn ein
anderer Begrenzer (in diesem Fall ?>) folgt.
再见,
克里斯蒂安
--
[Neuer alter Plasma-Bildschirm](http://ck.kennt-wayne.de/neuer-alter-plasma-bildschirm) | [Meine Schultüte](http://ck.kennt-wayne.de/meine-schultuete)
Ganz gleich, welchen Weg ich wähle, ich kehre heim.
<http://wwwtech.de/>
Hi Christian!
Das ist leider falsch. Das Semikolon kann weggelassen werden, wenn ein
anderer Begrenzer (in diesem Fall ?>) folgt.
Oha. Aber ich darf es trotzdem hinschreiben, ja? Ich gehe mal davon aus... Es funzt schließlich. :)
MfG H☼psel
你好 Hopsel,
Das ist leider falsch. Das Semikolon kann weggelassen werden, wenn ein
anderer Begrenzer (in diesem Fall ?>) folgt.Oha. Aber ich darf es trotzdem hinschreiben, ja?
Sicher - sonst hätte ich geschrieben "_muss_ weggelassen werden" ;)
再见,
克里斯蒂安
Hi Christian!
Sicher - sonst hätte ich geschrieben "_muss_ weggelassen werden" ;)
Ich weiß. Aber wenn ich nicht nahcgefragt hätte, dann hättest du mir auch nicht zugezwinkert. :)
MfG H☼psel