PHP ist eine der am meisten diskutierten Programmiersprachen in der Entwicklungswelt. Manche nennen es eine ineffektive Programmiersprache, andere nennen es eine nervige Programmiersprache ohne Konventionen oder Architektur, und ich stimme einigen von ihnen zu, weil sie berechtigte Argumente haben. Hier werde ich jedoch meine jahrelangen Erfahrungen mit der Programmierung mit PHP teilen. Einige dieser Tricks sind nur in den neuesten PHP-Versionen verfügbar und funktionieren daher möglicherweise nicht in älteren Versionen.
Typhinweise und Rückgabetypen
PHP ist keine perfekte Sprache, was Datentypen betrifft, aber Sie können Typhinweise und Rückgabetypen verwenden, um Ihren Code zu verbessern Qualität und verhindern weitere Typkonflikte. Nicht viele Leute nutzen diese Funktionen von PHP und nicht alle PHP-Programmierer wissen, dass dies möglich ist.
<?php function greet_user(User $user, int $age): void { echo "Hello" . $user->first_name . " " . $user->last_name; echo "\nYou are " . $age . " years old"; }
Typhinweise können mit dem Namen oder der Klasse des Typs vor den Parametervariablen und dem Rückgabetyp nach der Funktionssignatur nach dem Doppelpunkt deklariert werden.
Sie können dies auf eine fortgeschrittenere Art und Weise verwenden, wenn Sie Controller in einem Framework wie Laravel entwerfen:
<?php class UserController extends Controller { // User sign up controller public function signUp(Request $request): JsonResponse { // Validate data $request->validate([ 'plateNumber' => 'required|alpha_num|min:3|max:20|unique:users,plate_number', 'email' => 'required|email|unique:users', 'firstName' => 'required|alpha', 'lastName' => 'required|alpha', 'password' => 'required|min:8', 'phone' => 'required|numeric|unique:users' ]); // Create user $new_user = new User; $new_user->plate_number = trim(strtoupper($request->input('plateNumber'))); $new_user->email = trim($request->input('email')); $new_user->first_name = trim($request->input('firstName')); $new_user->last_name = trim($request->input('lastName')); $new_user->password = Hash::make($request->input('password')); $new_user->phone = trim($request->input('phone')); $new_user->save(); return response()->json([ 'success' => true, ]); } }
Ternärer Operator
Der ternäre Operator ist etwas, das fast 70 % der Programmierer kennen und ausgiebig verwenden. Wenn Sie jedoch nicht wissen, was der ternäre Operator ist, finden Sie hier ein Beispiel:
<?php $age = 17; if($age >= 18) { $type = 'adult'; } else { $type = 'not adult'; }
Sie können den ternären Operator verwenden. Die Notation vereinfacht dies Code wie folgt:
<?php $age = 17; $type = $age >= 18 ? 'adult' : 'not adult';
Wenn die Bedingung erfüllt ist, wird der zweite Teil der Variablen nicht zugewiesen.
Es gibt auch einen kürzeren Weg, wenn Sie den Wert der Bedingung verwenden möchten, wenn diese als wahrer Wert ausgewertet wird.
<?php $url = 'http://example.com/api'; $base_url = $url ? $url : 'http://localhost';
Wie Sie sehen können, wird $url sowohl als Bedingung als auch als Ergebnis verwendet, wenn die Bedingung wahr ist. In diesem Fall kann der linke Operand maskiert werden:
<?php $url = 'http://example.com/api'; $base_url = $url ?: 'http://localhost';
Null-Koaleszenzoperator
Genau wie der ternäre Operator können Sie dazu den Null-Koaleszenzoperator verwenden Überprüfen Sie, ob der Wert vorhanden ist. Da false selbst der Wert ist, unterscheidet sich der vorhandene Wert vom Fehlerwert.
<?php $base_url = $url ?? 'http://localhost';
Jetzt ist $base_url gleich http://localhost, aber wenn wir $url als false definieren, ist die Variable $base_url gleich false.
<?php $url = false; $base_url = $url ?? 'http://localhost';
Mit diesem Operator können Sie überprüfen, ob eine Variable bereits definiert wurde und ob ihr noch kein Wert zugewiesen wurde:
<?php $base_url = 'http://example.com'; $base_url = $base_url ?? 'http://localhost';
Sie können sie mithilfe der Null-Merge-Zuweisung verkürzen Operator Dieser Code
<?php $base_url = 'http://example.com'; $base_url ??= 'http://localhost';
Alle diese Nall-Merging-Techniken können auf Array-Werte implementiert werden.
<?php $my_array = [ 'first_name' => 'Adnan', 'last_name' => 'Babakan' ]; $my_array['first_name'] ??= 'John'; $my_array['age'] ??= 20;
Das obige Array wird „first_nameas“ und „Adnan“ haben, weil es bereits definiert ist, aber es wird einen neuen Schlüssel namens „age“ definieren und ihm die Nummer 20 geben, weil es nicht existiert.
Raumschiff-Operator
Der Raumschiff-Operator ist nützlich, wenn Sie wissen möchten, welcher Operand größer ist, und nicht nur, ob eine Seite größer ist.
Der Raumschiffoperator gibt einen Wert von 1, 0 oder -1 zurück, wenn der linke Operand größer ist, wenn die beiden Operanden gleich sind und wenn der rechte Operand jeweils größer ist.
<?php echo 5 <=> 3; // result: 1 echo -7 <=> -7; // result: 0 echo 9 <=> 15; // result: -1
Einfach, aber sehr nützlich.
Das wird noch interessanter, wenn man bedenkt, dass Raumschiffbetreiber auch andere Dinge vergleichen können:
<?php // String echo 'c' <=> 'b'; // result: -1 // String case echo 'A' <=> 'a'; // result: 1 // Array echo [5, 6] <=> [2, 7]; // result: 1
Pfeilfunktionen
Falls Sie das jemals getan haben Wenn Sie eine JavaScript-Anwendung geschrieben haben, insbesondere mit der neuesten Version, sollten Sie mit den Pfeilfunktionen vertraut sein. Pfeilfunktionen sind eine kürzere Möglichkeit, Funktionen ohne Gültigkeitsbereich zu definieren.
<?php $pi = 3.14; $sphere_volume = function($r) { return 4 / 3 * $pi * ($r ** 3); }; echo $sphere_volume(5);
Der obige Code löst einen Fehler aus, da $pi keine Variable ist, die im Rahmen dieser bestimmten Funktion definiert ist. Wenn wir es verwenden möchten, sollten wir unsere Funktion leicht ändern:
<?php $pi = 3.14; $sphere_volume = function($r) use ($pi) { return 4 / 3 * $pi * ($r ** 3); }; echo $sphere_volume(5);
Unsere Funktion kann jetzt also die im globalen Bereich definierte Variable $pi verwenden.
Aber eine kürzere Möglichkeit, diese Dinge zu tun, ist die Verwendung von Pfeilfunktionen.
<?php $pi = 3.14; $sphere_volume = fn($r) => 4 / 3 * $pi * ($r ** 3); echo $sphere_volume(5);
Wie Sie sehen, ist es sehr einfach und übersichtlich und verfügt standardmäßig über Zugriff auf den globalen Bereich.
Empfohlenes Tutorial: „PHP“