Perkara baharu dalam PHP

Patricia Arquette
Lepaskan: 2024-11-23 19:10:12
asal
868 orang telah melayarinya

Whats new in PHP

PHP 8.4: Perkara Baharu dan Cara Menggunakannya

PHP 8.4 ada di sini, membawakan beberapa ciri menarik yang memudahkan pengekodan dan meningkatkan prestasi. Artikel ini menerangkan kemas kini yang paling penting dengan contoh mudah, memudahkan pembangun semua peringkat kemahiran memahami dan menggunakan ciri ini.


1. Cangkuk Harta

Kait harta membolehkan anda menyesuaikan perkara yang berlaku apabila anda mendapat atau menetapkan harta. Ini menghilangkan keperluan untuk kaedah getter dan setter yang berasingan.

Contoh:

class User {
    private string $firstName;
    private string $lastName;

    public function __construct(string $firstName, string $lastName) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    // This property combines first and last name
    public string $fullName {
        get => $this->firstName . ' ' . $this->lastName;
        set => [$this->firstName, $this->lastName] = explode(' ', $value, 2);
    }
}

$user = new User('John', 'Doe');
echo $user->fullName; // Output: John Doe

$user->fullName = 'Jane Smith'; // Updates first and last names
echo $user->fullName; // Output: Jane Smith
Salin selepas log masuk

Mengapa ia berguna:

Cangkuk hartanah menjadikan kod anda lebih bersih dan mengurangkan plat dandang.


2. Keterlihatan Asymmetric

Anda kini boleh menetapkan tahap keterlihatan yang berbeza untuk membaca dan menulis harta. Contohnya, harta boleh dibaca oleh semua orang tetapi hanya boleh ditulis oleh kelas itu sendiri.

Contoh:

class BankAccount {
    public private(set) float $balance; // Public read, private write

    public function __construct(float $initialBalance) {
        $this->balance = $initialBalance; // Allowed here
    }

    public function deposit(float $amount): void {
        $this->balance += $amount; // Allowed here
    }
}

$account = new BankAccount(100.0);
echo $account->balance; // Output: 100

$account->deposit(50.0); // Adds 50 to the balance
echo $account->balance; // Output: 150

// The following line will cause an error:
// $account->balance = 200.0;
Salin selepas log masuk

Mengapa ia berguna:

Ciri ini memudahkan untuk mengawal cara sesuatu harta itu diakses dan dikemas kini.


3. Fungsi Tatasusunan Baharu

PHP 8.4 menambah fungsi tatasusunan baharu yang menyelamatkan anda daripada menulis gelung manual.

Contoh:

$numbers = [1, 2, 3, 4, 5];

// Find the first even number
$firstEven = array_find($numbers, fn($n) => $n % 2 === 0);
echo $firstEven; // Output: 2

// Check if any number is greater than 4
$hasBigNumber = array_any($numbers, fn($n) => $n > 4);
var_dump($hasBigNumber); // Output: bool(true)

// Check if all numbers are positive
$allPositive = array_all($numbers, fn($n) => $n > 0);
var_dump($allPositive); // Output: bool(true)
Salin selepas log masuk

Mengapa ia berguna:

Fungsi ini menjadikan operasi tatasusunan lebih pantas untuk ditulis dan lebih mudah difahami.


4. Semerta Objek Dipermudahkan

Kini anda boleh mencipta objek dan memanggil kaedah padanya serta-merta, tanpa membungkus instantiasi dalam kurungan.

Contoh:

class Logger {
    public function log(string $message): void {
        echo $message;
    }
}

// Create an object and call a method in one step
new Logger()->log('Logging a message'); // Output: Logging a message
Salin selepas log masuk

Mengapa ia berguna:

Ia mengurangkan sintaks yang tidak diperlukan, menjadikan kod anda lebih bersih.


5. Penamatan Jenis-Jenis Boleh Batal Tersirat

PHP 8.4 memerlukan anda mengisytiharkan secara eksplisit apabila parameter boleh menjadi batal. Ini menjadikan kod lebih mudah difahami dan diselenggara.

Contoh:

// PHP 8.4 (Recommended):
function process(?string $data = null) {
    echo $data ?? 'No data provided';
}
Salin selepas log masuk

Mengapa ia berguna:

Pengisytiharan eksplisit menghalang kekeliruan dan mengurangkan potensi pepijat.


6. Objek Malas

Objek malas membolehkan anda menangguhkan membuat objek sehingga ia benar-benar digunakan, yang boleh menjimatkan sumber.

Contoh:

class ExpensiveResource {
    public function __construct() {
        // Simulate a time-consuming setup
        sleep(2);
    }

    public function doWork(): void {
        echo 'Working...';
    }
}

// Use a lazy object to delay creation
$initializer = fn() => new ExpensiveResource();
$reflector = new ReflectionClass(ExpensiveResource::class);
$resource = $reflector->newLazyProxy($initializer);

// The object isn't created yet
$resource->doWork(); // Now the object is created and "Working..." is printed
Salin selepas log masuk

Mengapa ia berguna:

Ini amat membantu apabila berurusan dengan operasi yang mahal atau sistem yang besar.


Kesimpulan

PHP 8.4 memperkenalkan beberapa ciri yang menjadikan pengekodan lebih mudah dan lebih berkuasa:

  • Cangkuk Hartanah: Gantikan fungsi getter dan setter.
  • Keterlihatan Asimetri: Kawalan yang lebih baik ke atas akses harta benda.
  • Fungsi Tatasusunan Baharu: Permudahkan operasi tatasusunan biasa.
  • Pemasangan Objek Ringkas: Penciptaan objek yang lebih bersih.
  • Penahentian Jenis Tersirat Boleh Nullable: Kod yang lebih selamat dan jelas.
  • Objek Malas: Simpan sumber dengan melengahkan penciptaan objek.

Kemas kini ini akan menjadikan PHP lebih menyeronokkan untuk digunakan, sama ada anda seorang pemula atau pembangun berpengalaman. Mula meneroka PHP 8.4 hari ini!

Atas ialah kandungan terperinci Perkara baharu dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan