PHP : Memecahkan Kemas Kini Besar (Dengan Contoh)

Patricia Arquette
Lepaskan: 2024-11-26 10:34:10
asal
633 orang telah melayarinya

PHP : Breaking Down the Big Updates (With Examples)

PHP terus berkembang, dan keluaran PHP 8.4 padat dengan ciri baharu yang berkuasa yang menjadikan pengekodan lebih mudah, selamat dan lebih pantas. Daripada Cangkuk Hartanah kepada Penutupan Auto-Tangkapan, Keterlihatan Asimetri dan Fungsi Tatasusunan Baharu, PHP 8.4 adalah mengenai memperbaik pengalaman pembangun .

Dalam blog ini, kami akan meneroka ciri PHP 8.4 yang paling menarik, memberikan contoh untuk membantu anda memahami cara menggunakannya dan menyerlahkan peningkatan prestasi. Sama ada anda seorang pembangun yang berpengalaman atau baru bermula, kemas kini ini pasti menjadikan projek PHP anda lebih cekap dan menyeronokkan.

Jadual Kandungan

  1. Kail Hartanah
  2. Keterlihatan Asimetri
  3. Penutupan Auto-Tangkapan
  4. Sifat Baca Sahaja
  5. API DOM dipertingkat
  6. Fungsi Tatasusunan baharu_*()
  7. Peningkatan Prestasi
  8. Pembetulan Pepijat dan Pembersihan
  9. Pemikiran Akhir

1. Cangkuk Harta

Cangkuk Hartanah membenarkan pembangun mentakrifkan gelagat tersuai apabila mengakses atau mengubah suai sifat kelas. Ini menghapuskan keperluan untuk kaedah sihir yang kompleks seperti __get() dan __set().

Contoh:

class Product
{
    private array $data = [];

    public function __get(string $name)
    {
        echo "Accessing property: $name\n";
        return $this->data[$name] ?? null;
    }

    public function __set(string $name, $value)
    {
        echo "Setting property: $name to $value\n";
        $this->data[$name] = $value;
    }
}

$product = new Product();
$product->price = 100; // Output: Setting property: price to 100
echo $product->price;  // Output: Accessing property: price
Salin selepas log masuk

2. Keterlihatan Asymmetric

Dengan Keterlihatan Asimetri, anda boleh menentukan peraturan keterlihatan yang berasingan untuk sifat kelas membaca (dapat) dan menulis (menetapkan). Contohnya, anda boleh menjadikan harta boleh dibaca secara terbuka tetapi hanya boleh ditulis dalam kelas.

Contoh:

class Account
{
    private int $balance = 100;

    public function getBalance(): int
    {
        return $this->balance; // Publicly readable
    }

    private function setBalance(int $amount)
    {
        $this->balance = $amount; // Privately writable
    }
}

$account = new Account();
echo $account->getBalance(); // Output: 100
$account->setBalance(200);   // Error: Cannot access private method
Salin selepas log masuk

3. Auto-Tangkap Penutupan

Dalam PHP 8.4, penutupan secara automatik menangkap pembolehubah daripada skop induk, menghilangkan keperluan untuk mengisytiharkannya secara manual dengan use().

Contoh:

$discount = 20;
$applyDiscount = fn($price) => $price - $discount; // Automatically captures $discount

echo $applyDiscount(100); // Output: 80
Salin selepas log masuk

Ciri ini menjadikan penutupan lebih bersih dan mengurangkan kod plat dandang.

4. Sifat Baca Sahaja

Sifat baca sahaja hanya boleh diberikan sekali. Ia sesuai untuk sifat seperti ID atau konfigurasi yang tidak sepatutnya ditukar selepas pemulaan.

Contoh:

class Config
{
    public readonly string $appName;

    public function __construct(string $name)
    {
        $this->appName = $name;
    }
}

$config = new Config('MyApp');
echo $config->appName; // Output: MyApp
$config->appName = 'NewApp'; // Error: Cannot modify readonly property
Salin selepas log masuk

5. API DOM yang dipertingkatkan

DOM API kini menjadikannya lebih mudah dan pantas untuk menghuraikan dan memanipulasi dokumen XML dan HTML.

Contoh:

$dom = new DOMDocument();
$dom->loadHTML('<div>



<h3>
  
  
  6. New array_*() Functions
</h3>

<p>PHP 8.4 introduces new array functions to simplify common operations:</p>

<ul>
<li>
array_find(): Finds the first value that satisfies a condition.</li>
<li>
array_find_key(): Finds the first key that satisfies a condition.</li>
<li>
array_any(): Checks if any element satisfies a condition.</li>
<li>
array_all(): Checks if all elements satisfy a condition.</li>
</ul>

<h4>
  
  
  Example:
</h4>



<pre class="brush:php;toolbar:false">$numbers = [1, 2, 3, 4, 5];

$found = array_find($numbers, fn($value) => $value > 3);
echo $found; // Output: 4

$foundKey = array_find_key($numbers, fn($value) => $value > 3);
echo $foundKey; // Output: 3

$anyEven = array_any($numbers, fn($value) => $value % 2 === 0);
echo $anyEven ? 'Yes' : 'No'; // Output: Yes

$allPositive = array_all($numbers, fn($value) => $value > 0);
echo $allPositive ? 'Yes' : 'No'; // Output: Yes
Salin selepas log masuk

7. Peningkatan Prestasi

PHP 8.4 lebih pantas dan lebih cekap memori, terima kasih kepada:

  • Pengoptimuman Pengkompil Just-In-Time (JIT): Meningkatkan prestasi untuk tugas intensif CPU.
  • Penggunaan Memori yang Dikurangkan: Menjadikan aplikasi PHP lebih ringan dan lebih responsif.

Peningkatan ini memastikan aplikasi anda dimuatkan dengan lebih cepat dan mengendalikan lebih banyak tugas tanpa melambatkan.

8. Pembetulan Pepijat dan Pembersihan

Pepijat yang telah lama wujud telah ditangani dan ciri yang tidak digunakan telah dialih keluar dalam PHP 8.4. Pembersihan ini menjadikan PHP lebih bersih, lebih dipercayai dan bersedia untuk peningkatan masa hadapan.

9. Pemikiran Akhir

PHP 8.4 ialah pengubah permainan, memperkenalkan ciri seperti Cangkuk Hartanah, Penutupan Auto-Tangkapan dan Fungsi Tatasusunan Baharu yang memudahkan pengekodan dan meningkatkan prestasi . Sama ada anda sedang membina projek kecil atau aplikasi perusahaan, menaik taraf kepada PHP 8.4 memastikan anda menggunakan alatan yang paling berkuasa dan cekap yang tersedia.

Terokai ciri ini dan mula melaksanakannya dalam projek anda hari ini. PHP 8.4 menjadikan pengekodan lebih lancar, lebih pantas dan lebih menyeronokkan!

Untuk menyelam lebih mendalam, lihat Nota Keluaran PHP 8.4 rasmi.

Selamat pengekodan! ?

Atas ialah kandungan terperinci PHP : Memecahkan Kemas Kini Besar (Dengan Contoh). 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