PHP lernen: Kennt jemand gute Tutorials?

(kannst du auch zitieren, ohne den ganzen Beitrag zu kopieren?)

[quote=“netsplit”]Wer sagt das ich nicht einrücke?? Nur ich werde gezwungen nach python logik einzurücken…
Nur das einrücken von python passt mir eben nicht… Und wenn dann geh ich doch lieber gleich auf perl statt auf python[/quote]
Du kannst in Python einrücken wie du willst. Du solltest nur nicht Leerfelder und Tabulatoren vermischen (was du in keiner Sprache machen solltest). Der Rest bleibt dir selbst überlassen.

hm k.a hab mich nur 10minuten mit python beschäftigt, hab dann in ner com nachgefragt die meinten falsch eingerückt dann hab ichs richtig eingerückt ging…

war mir aber zu zeitaufwendig wie man dort richtig einrückt… und habs sein lassen.

Das disqualifiziert dich so ziemlcih über Python zu urteilen :wink:

Genau so wie in jeder anderen Sprache: Vernünftig

Ich glaube aber es ist inzwischen ziemlich OffTopic.

Und ja… das einrücken in Python ist zwar ein Problem und führt oft zu Fehlern [size=85](und ist hard zu debuggen, alles C like is was das betrifft einfacher, wenn gleich die Idee von Python gut war)[/size]
Ist ansonsten dennoch logisch und wie in jeder anderen Sprache… Du hast halt wirklich freie Wahl. Rücke mit einer Leertaste ein, nehme 2 tab, nehme 1 space+tab, alles egal. Solange du immer gleich einrückst im selben “scope” [size=85](ja Python hat leider keine richtigen scopes, bezeichnet es aber dennoch am besten)[/size]

Bin dennoch immer wieder über Probleme deswegen gestolpert :stuck_out_tongue: Meistens beim rewrite von code oder kopieren aus Seiten etc…

[quote=“Balmung”][]
Ich finde das erzwingen des $-Zeichens, des Semikolons und der Geschweiften Klammern in PHP (und vielen anderen Sprachen) wesentlich irritierender.
[][/quote]naja… alles davon hat dennoch seinen Sinn :wink:
das $ dient der klaren trennung zwischen constanten wie functions,defines aber auch syntax. Es macht auch nen highlighter schöner das Variablen anders aussehen und auffallen. Außerdem kann man es so (leider) “direkt” in strings nutzen… Also "Name: $namefromdb"
Ansonsten ist nen großes Problem vom Dollar eigl. nur der mangelnde Support von Editoren… z.B. das man mit nem doppelklick i.d.R. nur den Text und nicht das $ erwischt^^
Ansonsten mag ich das $ auch nicht wirklich, allerdings sind die Features davon schon nett, Editor Support liegt am Editor und was besseres fällt mir auch nicht ein.
$ hat vorallem den Vorteil das es leicht “schreibbar” ist… würde man nen “_” nutzen würde es nicht nur blöd aussehen, sondern auch für Deutsche zumindest schlecht schreibbar sein… Zumindest auf einer Deutschen Tastatur ist nen $ gut gewählt :wink:

Und neben den Vorteilen des Programmierers, ist es übrigends der Performance dienlich :wink: PHP hatte ursprünglich keinen gescheiten bytecode, daher wird/wurde immer komplett neu eingelesen, das “$” vereinfacht der parsen und beschleunigt die Ausführung ungemein da Variablen und Funktionen klar erkennbar sind als auch andere Sachen [size=85](ok, Funktionen sind es i.d.R. am “()”)[/size]

Semikolons und die Klammern wiederum sind sowieso unverzichtbar wenn man richtig Programmieren will :wink: Auch wenn nen Semikolon natürlich oft unnötig erscheint… dennoch hätte man ohne weniger Möglichkeiten und da ist das dranhängen nicht das Problem^^ [size=85](mach ich sogar in AutoIt xD Und da ists nur nen comment… wenn ich aber wirklich einen einfüge, setze ich noch nen // vor xD)[/size]

P.S.
und ja, weder C/C++ noch Python noch PHP sind perfekt… Python hat zwar einige Probleme erst mit 3k behoben, dennoch gibts einiges zutun und leider ist 3k noch nicht Standard… sondern eher 2.7. PHP versucht sich auch zu verbessern… aber Altlasten wird man auch da nicht los. Und C/C++… naja das rutscht ein wenig ab xD Zumal C99 einiges hatte was C++ nicht hatte… und selbst C++11 nicht alles übernommen hat… dafür aber ne menge Schandtaten eingebaut :stuck_out_tongue:

Fazit… man müsste ne neue Sprache erstellen, am besten from scratch so wie es am besten erscheint. Auch wenn vieles dann vermutlich C like is :wink:
Und D ist keine Option^^

[quote=“White-Tiger”]Und neben den Vorteilen des Programmierers, ist es übrigends der Performance dienlich :wink: PHP hatte ursprünglich keinen gescheiten bytecode, daher wird/wurde immer komplett neu eingelesen, das “$” vereinfacht der parsen und beschleunigt die Ausführung ungemein da Variablen und Funktionen klar erkennbar sind als auch andere Sachen [size=85](ok, Funktionen sind es i.d.R. am “()”)[/size]
[/quote]

function wut() { echo "lol"; }

$wet = "wut";

$wet();

where is your god now?

und ja michi7x7… den Syntax fand ich auch schon immer bescheuert… da es eigl. hätte:

<span class="syntaxdefault"></span><span class="syntaxkeyword">function&nbsp;</span><span class="syntaxdefault">wut</span><span class="syntaxkeyword">()&nbsp;{&nbsp;echo&nbsp;</span><span class="syntaxstring">"lol"</span><span class="syntaxkeyword">;&nbsp;}<br /></span><span class="syntaxdefault">$wet&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">wut</span><span class="syntaxkeyword">;&nbsp;</span><span class="syntaxdefault"></span>sein müssen… Keine Ahnung ob man die Flexibilität haben wollte das man functionsnamen dynamisch nach Fall setzen kann, oder ob man einfach einen an der Waffel hatte :ps: Wobei beides erlauben vermutlich nicht unbedingt Sachen vereinfacht hätte^^

[quote=“White-Tiger”]da es eigl. hätte:

Dann gibts ne Warnung wegen “undefinierter Konstante”, die dann als String interpretiert wird…

Das PHP keine Vernünftigen “function pointer/references” bietet, sondern das ganze mit Strings macht, ist wirklich lächerlich. Selbst JavaScript ist da deutlich besser (srsly, ich finde JavaScript um längen angenehmer mit zu arbeiten als PHP).

Das ist sowas von kacke, lol.

@michi7x7 nutzt du eigentlich noch Jabber? :<

[quote=“michi7x7”][]
Dann gibts ne Warnung wegen “undefinierter Konstante”, die dann als String interpretiert wird…[/quote]du weißt das ich nie etwas anderes erwartet noch gemeint habe, oder?

Und Balmung… das mit Strings hat eben auch Vorteile^^ Eben weil du komische Konstrukte machen kannst^^ Wie gesagt… man hätte beides erlauben können wenn diese Flexibilität Absicht war… aber dann hat man 2 syntaxe… is auch iwie blöd… wenn gleich besser für C/C++ devs :stuck_out_tongue:

Zu den komischen Konstrukten z.B.: [size=85](gibt auch auch bessere Einsatzzwecke z.B. in CMSs)[/size]
func content_main();
func content_news();
func content_about();

dann ohne switch etc.
$content=‘content_’.$page;
$content();

Das betrachte ich nicht unbedingt als einen Vorteil.

Du meinst so dinge wie call_user_func und call_user_func_array obwohl man das array argument einfach hätte optional machen können? oder auch schön finde ich: array_map($callback, $array) ABER array_filter($array, $callback)
oder natürlich die ganzen str_* (str_repeat, str_replace, etc.) oder str* (strpos, strlen, etc.) funktionen.

PHP ist der Inbegriff skuriler, doppelter und dreifacher syntakischer Variationen. Dort gibt es kaum Einheitlichkeit in der Sprache und man findet sich selbst ständig in den Docs nachlesen, wie man die dinge noch gleich anstellt.

Aber ich gebe dir Recht. 2 Syntaxe für funktionsreferenzen sind blöd. Die Stringvariante war, meiner Meinung nach, aber nicht die richtige Entscheidung :wink:

[size=80]Und ich wette, was immer diese “komischen Konstrukte” sind, von denen du sprachst, ich würde das mit Sicherheit auch in Python, welches reine Funktionsreferenzen nutzt (keine Strings wie in PHP), hinbekommen.[/size]

mfg Balmung

blöd hin oder her, es funktioniert doch und die welt dreht sich weiter?

benutzt hier jemand windows? da fallen mir auf anhieb einige sachen ein. so funktionsreferenzen sind da allerdings immerhin nicht dabei.

Das betrachte ich nicht unbedingt als einen Vorteil.

Du meinst so dinge wie call_user_func und call_user_func_array obwohl man das array argument einfach hätte optional machen können? oder auch schön finde ich: array_map($callback, $array) ABER array_filter($array, $callback)
oder natürlich die ganzen str_* (str_repeat, str_replace, etc.) oder str* (strpos, strlen, etc.) funktionen.

PHP ist der Inbegriff skuriler, doppelter und dreifacher syntakischer Variationen. Dort gibt es kaum Einheitlichkeit in der Sprache und man findet sich selbst ständig in den Docs nachlesen, wie man die dinge noch gleich anstellt.

Aber ich gebe dir Recht. 2 Syntaxe für funktionsreferenzen sind blöd. Die Stringvariante war, meiner Meinung nach, aber nicht die richtige Entscheidung :wink:

[size=80]Und ich wette, was immer diese “komischen Konstrukte” sind, von denen du sprachst, ich würde das mit Sicherheit auch in Python, welches reine Funktionsreferenzen nutzt (keine Strings wie in PHP), hinbekommen.[/size]

mfg Balmung[/quote]
Python hat aber eval xD Is nicht fair^^
und call_user_func und call_user_func_array sind kein Problem^^ Das eine ist zum direkten Aufruf, das andere ist für dynamische aufrufe. Man könnte zwar den direkten mit dem dynamischen ersetzen, nur dann ist es für Entwickler wieder nervig^^
Allerdings wird es in JS teilweise so gemacht. Und glaube auch in anderen Sprachen.

Ansonsten hatte call_user_func glaube ich auch irgendwelche Nutzungsmöglichkeiten die der direkte Aufruf nicht hätte.
Wie dem auch sei, ich finde es gut wenn eine Sprache nicht dem Entwickler vorschreibt wie er es zu machen hat. Besonders wenn es darum geht Sachen zu ermöglichen oder komplett zu blocken.
PHP ist soweit extrem vielseitig auch wenn vieles über den Sinnvollen Einsatz für Webseiten hinaus geht.

Und das Syntax in PHP nicht immer gleich bzw. ähnlich ist, weiß jeder :wink: Selbst die PHP devs und die haben auch schon versucht es zu ändern bzw. versuchen es auch weiter…

Wie ich auch irgendwann schon mal sagte, ich nutze nicht nur eine Sprache^^
Manches ist halt einfacher in C/C++, anderes in Python, wieder anderes in PHP, dann aber auch mal JS etc.
Ich nutze sie alle, und eben nicht nur C/C++ für Programme/Scripte am PC, sondern ggf. sogar mal PHP. JS allerdings eher selten :stuck_out_tongue: Das is wirklich meist nur für Webseiten bzw. Sachen im Browser gedacht bzw. nutze ich es so.
Python hatte ich zuletzt nur für nen DoS script genommen^^ Und ja, ich nutze das für eigene Zwecke und im Vergleich zu anderen Möchtegern DoS scripten^^ Also nicht zum nutzen sondern “forschen” :stuck_out_tongue:

Der einzige Unterschied zwischen call_user_func und call_user_func_array, ist die art wie die Parameter übergeben werden.
Wie schön wäre es, hätte PHP auch Python’s Tuple unpacking. :smiley:

Naja, ich nutze auch mehrere Sprachen, wegen meiner Arbeit leider sogar primär PHP. Ich bin selbstverständlich auch der Meinung, dass es von der Situation oder dem Projekt abhängt, welche Sprache(n)/Tools man verwenden sollte. PHP allerdings ist primär für die Webentwicklung ausgelegt und das noch nicht mal wirklich gut. Ich würde wahrscheinlich jede andere Sprache PHP vorziehen (wenn mein Chef (bzw sein Kunde) es mir nicht vorschreiben würde) und privat nutze ich auch wesentlich lieber ein schönes Python Webframework wie Flask.

mfg Balmung

[quote=“Balmung”]Der einzige Unterschied zwischen call_user_func und call_user_func_array, ist die art wie die Parameter übergeben werden.
[][/quote]Wie schon gesagt… die array Variante is unverzichtbar, die “statische” hingegen einfacher solange man keine dynamic braucht^^