Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa menggunakan declare(strict_types=in PHP – Petua pantas

Mengapa menggunakan declare(strict_types=in PHP – Petua pantas

PHPz
PHPzasal
2024-08-12 18:43:19738semak imbas

Why use declare(strict_types=in PHP – Fast tips

Dalam tutorial ini, kami akan meneroka maksud declare(strict_types=1), sebab pembangun PHP harus menggunakannya dan mengapa tidak, serta memberikan contoh untuk menggambarkan kepentingannya.

Tetapan ini datang kerana sifat PHP yang ditaip longgar dan peningkatan permintaan ciri ditaip ketat yang diterajui oleh bahasa popular lain seperti Java.

Kedua-dua strategi menaip (longgar vs ketat) mempunyai kebaikan dan keburukan, pertama sekali mari kita fahami maksudnya.

Bahasa Ditaip Longgar

Bahasa yang ditaip longgar, juga dikenali sebagai bahasa ditaip secara dinamik, ialah bahasa pengaturcaraan yang pembolehubah tidak terikat pada jenis data tertentu pada masa penyusunan. Anda tidak perlu mengisytiharkan terlebih dahulu jenis data yang akan terkandung dalam pembolehubah semasa pelaksanaan.

Jenis data pembolehubah ditentukan berdasarkan nilai yang dipegangnya dan boleh berubah semasa masa jalan.

PHP pada asasnya ialah bahasa yang ditaip longgar, jadi kita boleh menulis contoh dengannya:

$a = "hello";
$a = 1; 
// No errors. The content of the variable is changed from string to int.

Bahasa yang ditaip secara longgar selalunya membenarkan penukaran jenis tersirat, bermakna ia mungkin menukar data secara automatik daripada satu jenis kepada jenis yang lain untuk memudahkan operasi. Tingkah laku ini boleh membawa kepada lebih fleksibiliti tetapi juga potensi yang lebih tinggi untuk ralat fungsi.

Bahasa Ditaip Tegas

Bahasa ditaip ketat, juga dikenali sebagai bahasa ditaip secara statik, ialah bahasa pengaturcaraan di mana pembolehubah mesti diisytiharkan secara eksplisit dengan jenis data tertentu pada masa penyusunan.

Setelah jenis data pembolehubah ditakrifkan, ia tidak boleh berubah sepanjang hayatnya. Bahasa yang ditaip ketat tidak melakukan penukaran jenis tersirat, bermakna operasi antara pembolehubah jenis yang berbeza biasanya mengakibatkan ralat penyusunan.

Kita boleh menulis contoh dalam Java:

public class CompileError {
    public static void main(String[] args) {

        int x = 15;
        x = "Valerio";

    }
}

Apa itu declare(strict_types=1)?

declare(strict_types=1) ialah arahan dalam PHP yang menguatkuasakan semakan jenis yang ketat untuk argumen fungsi dan kaedah serta mengembalikan nilai dalam fail PHP atau blok kod tertentu. Apabila anda mendayakan semakan jenis yang ketat, PHP memastikan bahawa jenis data argumen fungsi dan nilai pulangan sepadan dengan jenis yang diisytiharkan. Persis dengan cara yang sama seperti Java.

Letakkan pengisytiharan ini pada awal fail PHP atau blok kod anda (sebelum sebarang kod lain) untuk membolehkan penaipan yang ketat.

Berikut ialah sintaks asas untuk membolehkan pemeriksaan jenis yang ketat:

<?php

declare(strict_types=1);

function speak(string $name): string 
{
    return "Hello {$name}!";
}

speak(1); // This fires the error "Uncaught TypeError"
speak("Valerio"); // This prints "Hello Valerio!"

Mengapa Gunakan declare(strict_types=1)?

Menguatkuasakan penaipan yang ketat boleh meningkatkan kebolehpercayaan kod anda dengan ketara dalam senario tertentu.

Penaipan yang ketat membantu mengelakkan isu berkaitan jenis yang tidak dijangka yang boleh membawa kepada ralat masa jalan atau tingkah laku yang tidak betul. Ia memastikan anda sentiasa bekerja dengan jenis data yang anda jangkakan.

Sebagai contoh, pertimbangkan fungsi yang sepatutnya menambah dua nombor:

function add($a, $b) 
{
    return $a + $b;
}

$result = add(5, '10'); // Without strict typing, this is allowed.
echo $result; // Output: 15

Tanpa jenis yang ketat, PHP akan memaksa rentetan '10' kepada integer dan menghasilkan hasil yang mungkin tidak seperti yang anda inginkan.

Dengan declare(strict_types=1):

declare(strict_types=1);

function add(int $a, int $b) 
{
    return $a + $b;
}

$result = add(5, '10'); // Fatal error: Uncaught TypeError

Dengan jenis yang ketat didayakan, PHP membuang TypeError dan menghalang fungsi daripada berjalan, memastikan keselamatan jenis.

Strategi mana yang hendak dipilih?

Teruskan ke artikel asal --> https://inspector.dev/why-use-declarestrict_types1-in-php-fast-tips/

Atas ialah kandungan terperinci Mengapa menggunakan declare(strict_types=in PHP – Petua pantas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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