Fragen, die jeder gute PHP-Entwickler beantworten kann [geschlossen]

75

Ich habe Fragen durchgearbeitet, die jeder gute .Net-Entwickler beantworten sollte, und war sehr beeindruckt vom Inhalt und Ansatz dieser Frage. In diesem Sinne stelle ich diese Frage auch für PHP-Entwickler.

Welche Fragen sollte ein guter PHP-Programmierer Ihrer Meinung nach beantworten können?

BEARBEITEN : Ich markiere diese Frage als Community-Wiki, da sie nicht benutzerspezifisch ist und der Programmier-Community insgesamt dienen soll.

Ich freue mich auf einige erstaunliche Antworten.

HINWEIS : Bitte beantworten Sie auch die in den Kommentaren vorgeschlagenen Fragen, damit die Benutzer auch etwas Neues in Bezug auf die Sprache lernen können.

Rachel
quelle
1
Ähnliche Frage hier, über "häufige Fehler, die PHP-Programmierer vermeiden sollten": stackoverflow.com/questions/1186957

Antworten:

50

Zugegeben, ich habe diese Frage von irgendwo anders gestohlen (kann mich nicht erinnern, wo ich sie noch gelesen habe), fand sie aber lustig:

F: Was ist T_PAAMAYIM_NEKUDOTAYIM?
A: Es ist der Operator für die Bereichsauflösung (Doppelpunkt)

Ein erfahrener PHP'er weiß sofort, was es bedeutet. Weniger erfahrene (und nicht hebräische) Entwickler möchten dies möglicherweise lesen .

Aber jetzt ernstere Fragen:


F: Was ist die Ursache für diese Warnung: "Warnung: Header-Informationen können nicht geändert werden - Header werden bereits gesendet", und was ist eine bewährte Methode, um dies zu verhindern?
A: Ursache: Körperdaten wurden gesendet, wodurch auch Header gesendet wurden.
Prävention: Stellen Sie sicher, dass Sie zuerst den headerspezifischen Code ausführen, bevor Sie Körperdaten ausgeben. Stellen Sie sicher, dass Sie nicht versehentlich Leerzeichen oder andere Zeichen gesendet haben.


F: Was ist mit dieser Abfrage falsch : "SELECT * FROM table WHERE id = $_POST[ 'id' ]"?
A: 1. Es ist anfällig für SQL-Injection. Verwenden Sie Benutzereingaben niemals direkt in Abfragen. Desinfizieren Sie es zuerst. Verwenden Sie vorzugsweise vorbereitete Anweisungen ( PDO ). 2. Wählen Sie nicht alle Spalten (*) aus, sondern geben Sie jede einzelne Spalte an. Dies dient vor allem dazu, zu verhindern, dass Abfragen den Speicher belasten, wenn beispielsweise zu einem späteren Zeitpunkt eine BLOB-Spalte hinzugefügt wird.


F: Was ist falsch an dieser if-Anweisung : if( !strpos( $haystack, $needle ) ...?
A: strpos Gibt die Indexposition zurück, an der die $ -Nadel gefunden wurde 0. Da sich 0auch falsedie Lösung auflöst, ist ein strikter Vergleich zu verwenden:if( false !== strpos( $haystack, $needle )...


F: Was ist die bevorzugte Methode, um diese if-Anweisung zu schreiben, und warum?
if( 5 == $someVar )oder if( $someVar == 5 )
A: Ersteres, da es die versehentliche Zuweisung von 5 zu $ ​​someVar verhindert, wenn Sie vergessen, 2 Equalsigns ( $someVar = 5) zu verwenden, und einen Fehler verursacht, letzteres nicht.


F: Angesichts dieses Codes:

function doSomething( &$arg )
{
    $return = $arg;
    $arg += 1;
    return $return;
}

$a = 3;
$b = doSomething( $a );

... was ist der Wert von $aund $bnach dem Funktionsaufruf und warum?
A: $a ist 4und $bist 3. Ersteres, weil $ arg als Referenz übergeben wird, letzteres, weil der Rückgabewert der Funktion eine Kopie des Anfangswertes des Arguments ist (kein Verweis darauf).


OOP-spezifisch

F: Was ist der Unterschied zwischen public, protectedund privatein einer Klassendefinition?
A: public stellt ein Klassenmitglied "allen" zur Verfügung, protectedstellt das Klassenmitglied nur sich selbst und abgeleiteten Klassen zur Verfügung, privatestellt das Klassenmitglied nur der Klasse selbst zur Verfügung.


F: Was ist mit diesem Code falsch:

class SomeClass
{
    protected $_someMember;

    public function __construct()
    {
        $this->_someMember = 1;
    }

    public static function getSomethingStatic()
    {
        return $this->_someMember * 5; // here's the catch
    }
}

A: Statische Methoden haben keinen Zugriff auf $ this, da statische Methoden ausgeführt werden können, ohne eine Klasse zu instanziieren.


F: Was ist der Unterschied zwischen einer Schnittstelle und einer abstrakten Klasse?
A: Eine Schnittstelle definiert einen Vertrag zwischen einer implementierenden Klasse und einem Objekt, das die Schnittstelle aufruft. Eine abstrakte Klasse definiert ein bestimmtes Verhalten für Klassen vor, die es erweitern. Bis zu einem gewissen Grad kann dies auch als Vertrag angesehen werden, da bestimmte Methoden garantiert werden.


F: Was ist falsch an Klassen, die vorwiegend Getter und Setter definieren, die direkt ihren internen Mitgliedern zugeordnet sind, ohne tatsächlich Methoden zu haben, die Verhalten ausführen?
A: Dies kann ein Codegeruch sein, da das Objekt ohne viel andere Verwendung als geadeltes Array fungiert.


F: Warum ist die Implementierung von Schnittstellen durch PHP nicht optimal?
A: Mit PHP können Sie den erwarteten Rückgabetyp der Methode nicht definieren, wodurch Schnittstellen im Wesentlichen ziemlich unbrauchbar werden. :-P

fireeyedboy
quelle
28
Die strposFrage könnte ich nicht beantworten, ohne aufzuschauen php.net/strpos. Ich habe nicht das Bedürfnis, Gehirnraum zu verschwenden, um das völlige Chaos auswendig zu lernen, das PHPs Grundfunktionen sind, welche -1 zurückgeben, welche falsch, welche null und welche etwas ganz anderes. Die anderen Fragen finde ich allerdings in Ordnung.
Pekka
19
Pekka: Aber Sie sollten wissen, dass Zeichenfolgen nullindiziert sind und daher strpos in der Lage sein muss , für ein gefundenes Präfix Null zurückzugeben.
Draemon
5
Entschuldigung, aber ... -1. Diese Fragen prüfen nur das Grundwissen wie Zugriffsmodifikatoren oder den Unterschied zwischen den Methoden / Feldern der Klasse (statisch) und des Objekts (dynamisch). Futhermore diese Fragen keine überprüfen Denkfähigkeiten (sorry, ich weiß nicht , gutes englisches Wort , es zu erklären). Was ich meine ist, dass Sie nicht überprüfen, ob der Programmierer in der Lage ist, nicht standardmäßige Algorithmen usw. zu erstellen .
Crozin
36
Bei allem Respekt T_PAAMAYIM_NEKUDOTAYIMist ein wertloser Test des relevanten Wissens.
Sampson
30
Der 5 == $someVareine ist eine dumme Frage. Keine Ahnung, warum dieser Codierungsstil so viel Anerkennung findet, wenn er von Natur aus fehlerhaft ist.
DisgruntledGoat
24

Definitiv Sicherheitsfragen!

(einfache Antworten in diesem Beitrag, natürlich ist das Sichern von PHP-Webanwendungen weitaus komplexer)

  • Wie gehe ich mit SQL Injection um?

mysql_real_escape_string () für den Anfang mit MySQL. Versuchen Sie dann, PDO zu lernen, um vorbereitete Anweisungen und Portabilität zwischen Datenbankanbietern zu nutzen.

  • Wie gehe ich mit CSRF (Cross-Site Request Forgery) um?

Fügen Sie jeder wichtigen Anforderung ein Token hinzu, um wichtige Vorgänge abzusichern (der Benutzer muss das Formular gesehen haben, bevor er die wichtige Anforderung sendet).

  • Wie gehe ich mit reflektiertem und gespeichertem XSS (Cross-Site Scripting) um?

htmlentities () ist zunächst einmal gut.

  • Variante der XXX-Injektionen: LDAP-Injektion, XPath-Injektion usw.?

Sie müssen wissen, welches "Vokabular" vom XXX verwendet wird, und dann abziehen, was Sie zum Desinfizieren und / oder "Prüfen und Ablehnen" benötigen.

  • Was ist die Liste der sinnvollen Funktionen?

Funktionen, die PHP-Code interpretieren (möglicherweise in einer Remote-Datei enthalten) oder Befehle auf Ihrem System ausführen. Eine kurze und unvollständige Liste könnte sein: exec (), passthru (), system (), popen (), eval (), preg_replace () ...

  • Wie gehe ich mit den Gefahren der Aufnahme von Dateien um?
  • Was ist eine Pfadüberquerung?
  • Welche Risiken sind mit dem Hochladen von Dateien verbunden?

Überprüfen Sie sorgfältig die Parameter, die beim Öffnen von Dateien oder Remote-Ressourcen verwendet werden.

  • Wie erzwinge ich die Konfiguration Ihrer PHP-Konfiguration (dh wissen Sie, was die Verwendung von php.ini ist)?

Es wird lange dauern, also überspringe ich die Antwort. Bitte lesen Sie das PHP-Handbuch.

  • Über das Filtern von Benutzerdaten: Was ist der Unterschied zwischen Desinfektion und Check-and-Refure ?

Der erste verwandelt den Eintrag in etwas weniger Feindliches. Der zweite prüft, ob die Eingabe korrekt ist, und lehnt sie ab, wenn nicht.

Kartoch
quelle
Ich stimme zu, dass Sie wissen sollten, wie Sie mit SQL-Injection umgehen sollen, wenn dies angemessen ist. Warum ist dies für ALLE guten PHP-Programmierer erforderlich? Ich werde nicht sagen, dass ich gut mit PHP umgehen kann, aber ich habe eine Web-App geschrieben, die nichts mit SQL zu tun hat, und ein Versuch einer SQL-Injektion wäre kläglich gescheitert. Ich weiß, dass es andere gibt, die ähnliche Arbeit leisten. (Zu Ihrer Information, die App verarbeitete und zeichnete wissenschaftliche Daten, die nicht gut in eine SQL-Datenbank passten.)
GreenMatt
Nun, die Frage ist etwas "vage", und da die meisten PHP- (Web-) Anwendungen eine Datenbank erfordern, habe ich das SQL-Zeug aufgenommen.
Kartoch
4
+1. obwohl die Antwort auf die meisten lautet: Verwenden Sie ein geeignetes Framework oder eine Bibliothek ...
back2dos
14

"Warum benutzt du nichts anderes?"

Sorry, jemand musste es sagen :)

kprobst
quelle
24
Ich denke, das ist eigentlich eine gute Frage. Entwickler sollten erklären können, warum sie eine Sprache / ein Framework / eine Technologie einer anderen vorgezogen haben, und die Antwort sollte nicht "weil ich noch nie etwas anderes ausprobiert habe" lauten. PHP hat Vor- und Nachteile im Vergleich zu Alternativen, und entgegen der landläufigen (oder vielleicht elitären) Überzeugung gibt es triftige Gründe, es zu verwenden.
JAL
1
es ist eine sehr gute Frage ... obwohl ich PHP nicht mag, finde ich, dass es viele gute Gründe gibt, es unter bestimmten Umständen zu verwenden ...
back2dos
2
Das wurde ich definitiv in Interviews für PHP / LAMP-Jobs gefragt. Ich bin damit einverstanden, dass es eine gültige Frage ist.
Markb
12

Ist PHP Cross-Browser?

(Ich weiß, das wird viele Leute zum Lachen bringen, aber es ist die am häufigsten gestellte Frage in PHP-Foren!)

Strae
quelle
9
+1. Ich weiß nicht, ob ich lachen oder weinen soll ...: D
back2dos
Normalerweise denke ich, das ist es, was wir für die Auswahl der beliebtesten Web-Programmiersprache bekommen haben
Strae
11

Ich denke, eine gute Frage wäre: Wie funktioniert HTTP? Die Arbeit mit GETund POSTDaten unter anderen HTTP-Kommunikationen sind Bestandteil der PHP-Entwicklung. Zu verstehen, wie HTTP in einem breiteren Kontext funktioniert und wie PHP dies implementiert, ist ein langer Weg.

bkildow
quelle
9

Was ist der Unterschied zwischen == und === und warum sollten Sie == überhaupt verwenden?

Michael Stum
quelle
1
Wenn Sie den von Ihnen verwendeten Variablentyp bereits kennen, ist der Aufwand für eine Typprüfung im Vergleich nicht erforderlich. Wenn Sie den Typ Ihrer Variablen nicht kennen, haben Sie größere Probleme als die Verwendung des falschen Komparators.
Mike
1
'===' ist schneller als '=='
Ehtesham
1
'==' sind gleich, aber nicht unbedingt vom gleichen Typ und '===' bedeutet, dass sie gleich und vom gleichen Typ sind. Zum Beispiel dieser Code: <? Php if (true == "true") {echo 'first'; } if (true === "true") {echo 'second'; }?> wird nur zuerst ausgegeben, da "true" eine Zeichenfolge und true boolean ist.
zuzuleinen
9

Erklären Sie, warum der folgende Code 2.5anstelle von angezeigt wird 3:

$a = 012;
echo $a / 4;

Antwort: Wenn einer Zahl 0in PHP ein vorangestellt ist , wird die Zahl als Oktalzahl (Basis-8) behandelt. Daher ist die Oktalzahl 012gleich der Dezimalzahl 10.

Nathan Osman
quelle
8

Noch hat niemand darauf eingegangen, aber es ist etwas, worüber jeder PHP-Entwickler ausführlich sprechen sollte: Warum ist es register_globalsschlecht?

markb
quelle
Eigentlich würde ich hoffen, dass es nicht erforderlich ist, lange zu sprechen ... ein oder zwei Sätze sollten für diese schreckliche Idee ausreichen!
JAL
2
register_globalsist genauso schlecht wie ein Entwickler, der eine Variable verwendet, ohne sie vorher zu definieren.
Matteo Riva
7

Wenn eine Seite mit PHP entwickelt wird und es völliger Mist ist, ist es:

a) PHPs Fehler

b) Programmiererfehler

AntonioCS
quelle
Ich denke das ist gültig. Ich habe viele neue Entwickler gesehen, die automatisch die Sprache / den Compiler / den Interpreter beschuldigen, wenn ihre unmittelbare Annahme sein sollte, dass sie es sind. PHP hat mehr als nur einen fairen Anteil an neuen Entwicklern, daher ist es wahrscheinlich relevant.
Draemon
1
Ausnahmslos die Schuld des Programmierers. Solange Sie eine einzige erfolgreiche Implementierung mit der betreffenden Sprache / Plattform durchgeführt haben. Wikipedia sticht unter Tausenden von anderen hervor. PHP mag seine Fehler haben, aber sein Erfolg ist unbestreitbar.
kprobst
2
@Felix: Viele Leute machen PHP für Site X oder Y verantwortlich, was schrecklich ist, wenn es offensichtlich ist, dass der Programmierer schuld ist. PHP macht das, was Sie ihm sagen, es ist nicht magisch, es hat keinen eigenen Verstand.
AntonioCS
Aber wo sollte ein guter PHP-Entwickler diese Frage beantworten können? Jeder gute Programmierer weiß, dass wenn etwas nicht funktioniert, es höchstwahrscheinlich seine Schuld ist und nicht die der Sprache. Und wenn jemand PHP beschuldigt, kann man immer noch sagen: "Nun, es ist eine Expertensprache" :-D
Felix Kling
3
aber php ist magisch: magic_quotes_gpc
Draemon
6

Was ist die beste Vorgehensweise, um Benutzereingaben zu entgehen? (Diese Frage scheint oft zu kommen)

Matt
quelle
10
Das ist natürlich eine Trickfrage. Es ist eine Ausgabe, die maskiert werden muss, keine Eingabe. Jeder, der vorschlägt, alles im $ _GET-Array zu bereinigen oder zu entkommen, hat Done It Wrong.
Bobince
1
@bobince Obwohl ich einem Teil Ihrer Arbeit zustimme, was ist mit SQL-Injektionen? Oder halten Sie das für einen Teil der Ausgabe?
Jordan S. Jones
2
@ Bobince falsch. Es ist erforderlich, die Eingabe vor der DB-Interaktion zu entziehen. Wenn Sie gespeicherte Prozesse wie ein guter kleiner Entwickler verwenden, wird dies natürlich unnötig (es sei denn, Sie verwenden Parameter zum Generieren und Ausführen von dynamischem SQL auf dem SQL Server. In diesem Fall sollten Sie zurückgehen und im technischen Support arbeiten Abteilung)
3Dave
6
Es ist keine Frage der Eingabe / Ausgabe. Sie müssen sich bewusst sein Kontext die Daten bewegt in . Wenn es sich um eine SQL-Abfrage handelt, muss sie auf eine Weise maskiert werden. Wenn es sich um eine HTML-Ausgabe handelt, muss sie auf eine andere Weise maskiert werden. Wenn es sich um eine URL handelt, muss sie auf eine andere Weise maskiert werden Daten am Eingangspunkt für einen Kontext und später in einem anderen Kontext verwendet, sind Sie immer noch anfällig.
Draemon
3
Verwenden Sie ein Framework, um dies für Sie zu tun ... eine DB-Abstraktionsschicht schützt Sie vor Injektionen ... ein korrektes HTML-Rendering-Enging entgeht der Ausgabe ...
back2dos
6
  • Was ist beim Aufrufen des "name" -Elements von $ array richtig?:

    • $array[name]
    • $array['name']

    Beides funktioniert oft, aber nur die angegebene Form ist korrekt. define('name', 0);und beobachte, wie die Käfer fliegen. Ich habe so viel gesehen.

  • Wie können Sie die Übermittlung von Formularelementen als Array erzwingen?

    Fügen Sie dem Namensattribut leere Klammern hinzu: Mehrere <input type="checkbox" name="checkboxes[]" />Elemente werden auf dem Server in ein Array konvertiert (z $_POST['checkboxes'][0..n]. B. ). Ich denke nicht, dass es 100% PHP-spezifisch ist, aber es ist sicher besser $_POSTals jedes mögliche 'checkboxes'.$iElement zu durchlaufen .

  • mysql_, mysqli_ oder PDO?

    Nur eine wirklich falsche Antwort hier: Die Bibliothek mysql_ macht keine vorbereiteten Anweisungen und kann ihre Fähigkeit zum Bösen nicht länger entschuldigen. Das Benennen einer Funktion, von der erwartet wird, dass sie mehrmals pro ausgeführter Abfrage aufgerufen wird, " mysql_real_escape_string()", ist nur Salz in der Wunde.

Tadamson
quelle
2
Letzter Punkt: Dafür ist foreach auf Wertearrays gedacht. Außerdem sollten Sie MySQL oder MySQL nicht direkt verwenden. Es sollte eine gewisse Abstraktion geben, damit Sie irgendwann zu pgsql (zum Beispiel) wechseln können.
jmucchiello
@jmucchiello - Einverstanden sowohl für das Foreach'ing als auch für das Abstracting, und es ist nicht einmal PHPs Schuld hier - das ist der Funktionsname in der C lib von mysql. Persönlicher Geschmack und alte Narben vielleicht, aber es stinkt immer noch nach einer ungeschickten Fußnote aus den Tagen "Natürlich ist es sicher, ich habe es doppelt zitiert" :)
Tadamson
5

"Was ist dein Lieblingsdebugger?"
"Was ist dein Lieblingsprofiler?"

Die eigentliche Anwendung / ide / frontend spielt keine große Rolle, solange sie über "Notepad, Echo und Microtime ()" hinausgeht. Es ist so unwahrscheinlich, dass Sie einen Entwickler in einer Milliarde einstellen, der ständig perfekten Code schreibt, und seine Unit-Tests haben alle Fehler und Engpässe entdeckt, bevor sie überhaupt auftreten, dass Sie jemanden suchen, der den Code profilieren und / oder durchgehen und finden kann Fehler in endlicher Zeit. (Das gilt wahrscheinlich für alle Sprachen / Plattformen, aber es scheint mir eine etwas unterentwickelte Fähigkeit unter PHP-Entwicklern zu sein, rein subjektiv gesprochen)

VolkerK
quelle
1
Ich habe PHP für eine lange Zeit nur in einem Editor ohne Probleme programmiert. Debugger werden nicht benötigt. Der gesamte Linux-Kernel wurde ohne Zugriff auf einen Debugger geschrieben. Debugger sind hilfreich, aber überhaupt nicht notwendig. Ebenso werden Profiler nur benötigt, wenn Sie tatsächlich ein Zeitproblem haben. Ich habe APD dafür verwendet. Aber ich habe normalerweise APD in meiner php.ini deaktiviert.
jmucchiello
Debugger beschleunigen die Arbeit und nicht nur, weil Sie Werte nicht manuell drucken. Die Antwort: xdebuger, wenn Sie zend studio nicht verwenden, und zend debugger, wenn Sie zend studio verwenden
Yosef
5

Terry Chay hat einen Blog-Beitrag, der im Wesentlichen zusammenfasst, was jeder PHP-Entwickler wissen und / oder in einem Vorstellungsgespräch bis zu einem gewissen Grad beantworten sollte.

http://terrychay.com/article/php-coders.shtml

Ich denke, es ist eine großartige Zusammenfassung.

Cody Caughlan
quelle
4

Ich würde etwas fragen wie:

a) Was ist mit Caching?

b) Wie kann der Cache organisiert werden?

c) Sind Sie sicher, dass Sie keine zusätzlichen DB-Abfragen durchführen? (In meinen ersten Sachen, die ich auf PHP gemacht habe, war es eine mysql_query in foreach, um Namen von Benutzern zu bekommen, die Kommentare abgegeben haben ... schrecklich :))

d) warum ist register_globals böse?

e) Warum und wie sollten Sie die Ansicht vom Code trennen?

f) Was ist das Hauptziel von "implementieren"?

Hier sind Fragen, die mir nach dem Lesen einiger grundlegender Bücher überhaupt nicht klar waren. Ich habe alles über Injektionen und CSX, Strpos in ein paar Tagen / Wochen durch Tausende von FAQs im Web herausgefunden. Aber bis ich Antworten auf diese Fragen fand, war mein Code wirklich schrecklich :)

MInner
quelle
Ich bin nicht gut in Englisch. (Englisch ist nicht meine Muttersprache). Also, danke, ich werde es wissen.
Ben Usman
Ops, es war diese Art von "Bargeld" hier. Meine Entschuldigung.
Ben Usman
3

Warum sollten Sie Benutzereingaben niemals direkt ausgeben?

Das direkte Drucken von Daten aus GET kann zu XSS- Schwachstellen (Cross-Site Scripting) führen . Deshalb sollten Sie immer zuerst Eingaben vom Client über htmlspecialchars () senden.

Lamas
quelle
und auch SQL-Injection, Cross-Site Request Forgery (CSRF), Command / LDAP / XPath-Injection, einschließlich Injection, File Injection ...
Kartoch
Es ist nicht PHP-spezifisch, sondern gilt für jede Webanwendung.
Residuum
2
Es ist SEHR PHP-spezifisch, da PHP für Entwickler keinen "standardmäßig sicheren" Geist hat.
Kartoch
@Kartoch: Sie sollten nicht davon ausgehen, dass ein System dies tut. Auch wenn es sich mit diesem Slogan ankündigt. Vertraue nicht seiner eigenen Sicherheit.
jmucchiello
@jmucchiello Entschuldigung, ich war nicht klar: PHP ist eine der anfälligsten Web-Sprachen, aber ich wollte nicht, dass andere alle gesichert sind.
Kartoch
2

Erklären Sie den Unterschied von

Extrakt()

explodieren()

implodieren()

Zeishi
quelle
1

Was ist mit dem folgenden Code falsch?

$a = 2;
function foo()
{
    $a = 3;
}
foo();
echo $a;
Nathan Osman
quelle
Die Antwort? Verwenden Sie 'global $ a;' am Anfang der Funktion, da das $ a in der Funktion lokal ist, sofern nicht die globale Anweisung verwendet wird.
Nathan Osman
4
Nichts ist falsch. Es zeigt nur den Umfang der Variablen :)
Takeshin
Aus dem Zusammenhang geht jedoch hervor, dass das Ergebnis nicht das war, was beabsichtigt war.
Nathan Osman
Das einzige Problem ist, dass foo $ a zurückgeben muss. Ansonsten können Sie nicht davon ausgehen, dass etwas anderes falsch ist.
Chuck Burgess
3
Ändern Sie die Frage und den Code. Anstatt zu sagen: "Was ist mit dem folgenden Code falsch?" Ändern Sie es in "Was werden die Ergebnisse von $ a sein und warum?" Ändern Sie den Code wie folgt:$a = 2; function foo() { $a += 3; return $a; } $a = foo(); echo $a;
Chuck Burgess