ホームページ 見出し 別の PHP を書くにはどうすればよいですか?

別の PHP を書くにはどうすればよいですか?

Jul 23, 2020 pm 01:05 PM
php

別の PHP を書くにはどうすればよいですか?

PHP は、開発の世界で最も議論されているプログラミング言語の 1 つです。これを非効率なプログラミング言語と呼ぶ人もいれば、規約やアーキテクチャのない迷惑なプログラミング言語と呼ぶ人もいますが、私もその意見には正当な点があるので同意します。ただし、ここでは、長年にわたる PHP を使用したプログラミングの経験を共有します。これらのトリックの一部は最新の PHP バージョンでのみ利用できるため、古いバージョンでは機能しない可能性があります。

型ヒントと戻り値の型

PHP はデータ型に関する限り完璧な言語ではありませんが、型ヒントと戻り値の型を使用してコードを改善できます。品質を維持し、さらなる型の競合を防ぎます。 PHP のこれらの機能を使用する人は多くありませんし、すべての PHP プログラマーがこれが可能であることを知っているわけでもありません。

<?php
function greet_user(User $user, int $age): void {
    echo "Hello" . $user->first_name . " " . $user->last_name;
    echo "\nYou are " . $age . " years old";
}
ログイン後にコピー

型ヒントは、パラメーター変数の前に型の名前またはクラスを使用し、コロンの後の関数シグネチャの後に戻り型を使用して宣言できます。

Laravel などのフレームワークでコントローラーを設計する場合、これをより高度な方法で使用できます。

<?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,
        ]);
    }
}
ログイン後にコピー

三項演算子

三項演算子これは、プログラマのほぼ 70% が知っており、広く使用しているものですが、三項演算子が何なのかわからない場合は、次の例を参照してください。

<?php
$age = 17;
if($age >= 18) {
    $type = &#39;adult&#39;;
} else {
    $type = &#39;not adult&#39;;
}
ログイン後にコピー

三項演算子を使用できます。この表記はこれを簡略化しています。コードを次のように変更します:

<?php
$age = 17;
$type = $age >= 18 ? &#39;adult&#39; : &#39;not adult&#39;;
ログイン後にコピー

条件が満たされる場合、2 番目の部分は変数に代入されません。

条件が true 値に評価された場合にその値を使用する場合は、より短い方法もあります。

<?php
$url = &#39;http://example.com/api&#39;;
$base_url = $url ? $url : &#39;http://localhost&#39;;
ログイン後にコピー

ご覧のとおり、$url は条件として、および条件が true の場合の結果として使用されます。この場合、左側のオペランドは次のようにエスケープできます。

<?php
$url = &#39;http://example.com/api&#39;;
$base_url = $url ?: &#39;http://localhost&#39;;
ログイン後にコピー

Null 合体演算子

三項演算子と同様に、Null 合体演算子を使用して次のことを行うことができます。 false 自体が値であるため、既存の値はエラー値とは異なることに注意してください。

<?php
$base_url = $url ?? &#39;http://localhost&#39;;
ログイン後にコピー

現在、$base_url は http://localhost と等しくなりますが、$url を false として定義すると、$base_url 変数は false になります。

<?php
$url = false;
$base_url = $url ?? &#39;http://localhost&#39;;
ログイン後にコピー

この演算子を使用すると、変数が以前に定義されているかどうか、値が割り当てられていないかどうかを確認できます:

<?php
$base_url = &#39;http://example.com&#39;;
$base_url = $base_url ?? &#39;http://localhost&#39;;
ログイン後にコピー

null マージ代入を使用して短縮できます。演算子 このコード

<?php
$base_url = &#39;http://example.com&#39;;
$base_url ??= &#39;http://localhost&#39;;
ログイン後にコピー

これらのすべてのマージ手法はすべて、配列値に実装できます。

<?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;
ログイン後にコピー

上記の配列には、すでに定義されているため、first_nameas、Adnan が含まれますが、age という名前の新しいキーが定義され、存在しないため、それに番号 20 が与えられます。

Spaceship Operator

Spaceship Operator は、一方の演算子が大きいかどうかだけを知るのではなく、どちらのオペランドが大きいかを知りたい場合に便利です。

spaceship 演算子は、左側のオペランドが大きい場合、2 つのオペランドが等しい場合、および右側のオペランドが大きい場合、それぞれ 1、0、または -1 の値を返します。

<?php
echo 5 <=> 3; // result: 1
echo -7 <=> -7; // result: 0
echo 9 <=> 15; // result: -1
ログイン後にコピー

シンプルですがとても便利です。

宇宙船のオペレーターが他のものを比較できることを理解すると、これはさらに興味深いものになります:

<?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
ログイン後にコピー

アロー関数

JavaScript アプリケーションを作成する場合、特に最新バージョンを使用する場合は、アロー関数についてよく知っている必要があります。アロー関数は、スコープなしで関数を定義する短い方法です。

<?php
$pi = 3.14;
$sphere_volume = function($r) {
    return 4 / 3 * $pi * ($r ** 3);
};
echo $sphere_volume(5);
ログイン後にコピー

$pi はこの特定の関数のスコープ内で定義された変数ではないため、上記のコードはエラーをスローします。これを使用したい場合は、関数を少し変更する必要があります:

<?php
$pi = 3.14;
$sphere_volume = function($r) use ($pi) {
    return 4 / 3 * $pi * ($r ** 3);
};
echo $sphere_volume(5);
ログイン後にコピー

これで、関数はグローバル スコープで定義された $pi 変数を使用できるようになります。

しかし、これらのことを行うより簡単な方法は、アロー関数を使用することです。

<?php
$pi = 3.14;
$sphere_volume = fn($r) => 4 / 3 * $pi * ($r ** 3);
echo $sphere_volume(5);
ログイン後にコピー

ご覧のとおり、これは非常にシンプルできちんとしていて、デフォルトでグローバル スコープにアクセスできます。

推奨チュートリアル: 「PHP

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます