Heim > Schlagzeilen > Hauptteil

Wie schreibe ich anderes PHP?

Guanhui
Freigeben: 2020-07-23 13:05:31
nach vorne
3270 Leute haben es durchsucht

Wie schreibe ich anderes PHP?

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";
}
Nach dem Login kopieren

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([
            &#39;plateNumber&#39; => &#39;required|alpha_num|min:3|max:20|unique:users,plate_number&#39;,
            &#39;email&#39; => &#39;required|email|unique:users&#39;,
            &#39;firstName&#39; => &#39;required|alpha&#39;,
            &#39;lastName&#39; => &#39;required|alpha&#39;,
            &#39;password&#39; => &#39;required|min:8&#39;,
            &#39;phone&#39; => &#39;required|numeric|unique:users&#39;
        ]);
        // Create user
        $new_user = new User;
        $new_user->plate_number = trim(strtoupper($request->input(&#39;plateNumber&#39;)));
        $new_user->email = trim($request->input(&#39;email&#39;));
        $new_user->first_name = trim($request->input(&#39;firstName&#39;));
        $new_user->last_name = trim($request->input(&#39;lastName&#39;));
        $new_user->password = Hash::make($request->input(&#39;password&#39;));
        $new_user->phone = trim($request->input(&#39;phone&#39;));
        $new_user->save();
        return response()->json([
            &#39;success&#39; => true,
        ]);
    }
}
Nach dem Login kopieren

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 = &#39;adult&#39;;
} else {
    $type = &#39;not adult&#39;;
}
Nach dem Login kopieren

Sie können den ternären Operator verwenden. Die Notation vereinfacht dies Code wie folgt:

<?php
$age = 17;
$type = $age >= 18 ? &#39;adult&#39; : &#39;not adult&#39;;
Nach dem Login kopieren

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 = &#39;http://example.com/api&#39;;
$base_url = $url ? $url : &#39;http://localhost&#39;;
Nach dem Login kopieren

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 = &#39;http://example.com/api&#39;;
$base_url = $url ?: &#39;http://localhost&#39;;
Nach dem Login kopieren

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 ?? &#39;http://localhost&#39;;
Nach dem Login kopieren

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 ?? &#39;http://localhost&#39;;
Nach dem Login kopieren

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 = &#39;http://example.com&#39;;
$base_url = $base_url ?? &#39;http://localhost&#39;;
Nach dem Login kopieren

Sie können sie mithilfe der Null-Merge-Zuweisung verkürzen Operator Dieser Code

<?php
$base_url = &#39;http://example.com&#39;;
$base_url ??= &#39;http://localhost&#39;;
Nach dem Login kopieren

Alle diese Nall-Merging-Techniken können auf Array-Werte implementiert werden.

<?php
$my_array = [
    &#39;first_name&#39; => &#39;Adnan&#39;,
    &#39;last_name&#39; => &#39;Babakan&#39;
];
$my_array[&#39;first_name&#39;] ??= &#39;John&#39;;
$my_array[&#39;age&#39;] ??= 20;
Nach dem Login kopieren

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
Nach dem Login kopieren

Einfach, aber sehr nützlich.

Das wird noch interessanter, wenn man bedenkt, dass Raumschiffbetreiber auch andere Dinge vergleichen können:

<?php
// String
echo &#39;c&#39; <=> &#39;b&#39;; // result: -1
// String case
echo &#39;A&#39; <=> &#39;a&#39;; // result: 1
// Array
echo [5, 6] <=> [2, 7]; // result: 1
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

Wie Sie sehen, ist es sehr einfach und übersichtlich und verfügt standardmäßig über Zugriff auf den globalen Bereich.

Empfohlenes Tutorial: „PHP

Verwandte Etiketten:
php
Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage