Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP pembelajaran jenis data penukaran automatik

PHP pembelajaran jenis data penukaran automatik

PHPz
PHPzasal
2023-03-20 15:34:012253semak imbas

Dalam pembangunan, PHP, sebagai bahasa yang ditaip secara dinamik, mempunyai fleksibiliti yang sangat tinggi untuk jenis data berubah-ubah, jadi tidak perlu untuk menentukan jenis data semasa menulis, tetapi jenisnya ditentukan berdasarkan tugasan pada masa jalan. Ini memberikan kemudahan yang hebat kepada pengaturcara, tetapi kadangkala ia juga boleh menyebabkan beberapa masalah, seperti penukaran jenis yang tidak betul. PHP menyediakan banyak fungsi penukaran jenis dan beberapa fungsi pertimbangan jenis Artikel ini akan memperkenalkan beberapa kaedah dan masalah biasa penukaran jenis PHP.

1. Jenis kuat dan jenis lemah

Pembolehubah PHP mempunyai dua jenis: jenis kuat dan jenis lemah. Penaipan yang kuat bermakna jenis pembolehubah adalah agak tetap dan tidak boleh diubah sesuka hati setelah ia ditakrifkan. Contohnya, dalam Java, jika anda mentakrifkan pembolehubah integer, anda hanya boleh menghantar data integer kepadanya Sebarang jenis data lain akan menyebabkan ralat kompilasi. Penaipan lemah bermakna jenis pembolehubah tidak tetap dan boleh diubah secara dinamik. Sebagai contoh, dalam PHP, anda boleh mentakrifkan pembolehubah jenis rentetan dan secara langsung memberikan pembolehubah integer kepadanya semasa masa jalan.

2. Penukaran jenis paksa

PHP menyediakan beberapa fungsi untuk melaksanakan penukaran jenis paksa Peraturan penamaan fungsi ini semuanya bermula dengan "(jenis yang perlu ditukar kepada) (Pembolehubah yang perlu ditukar)" dinamakan dalam bentuk, seperti (int)$var, $str, (float)$var, dsb. Mari perkenalkan beberapa fungsi penukaran cast yang biasa digunakan.

a. (bool) atau (boolean)

(boolean)$var atau (bool)$var boleh menukar pembolehubah kepada jenis Boolean. Antaranya, untuk nilai bukan Boolean, ia akan ditukar kepada nilai Boolean Peraturan penukaran adalah seperti berikut:

  • 0, 0.0, "", "0", "false", " null" akan ditukar kepada Boolean false.
  • Nilai lain akan ditukar kepada Boolean benar.

b. (int) atau (integer)

(integer)$var atau (int)$var boleh menukar pembolehubah kepada integer. Untuk nilai bukan integer, ia akan ditukar kepada integer sebanyak mungkin Peraturan penukaran adalah seperti berikut:

  • Nombor titik terapung akan dipaksa untuk ditukar kepada integer dan integer. bahagian akan dipotong.
  • String akan ditukar kepada integer. Jika rentetan tidak bermula dengan nombor, ia akan ditukar kepada 0.
  • Nilai Boolean benar akan ditukar kepada 1 dan palsu akan ditukar kepada 0.
  • Tatasusunan dan objek tidak boleh ditukar kepada integer, ia ditukar kepada 1.

c. (float) atau (double)

(double)$var atau (float)$var boleh menukar pembolehubah kepada jenis titik terapung. Untuk nilai bukan titik terapung, ia akan ditukar kepada jenis titik terapung sebanyak mungkin Peraturan penukaran adalah seperti berikut:

  • Jika ia adalah integer, ia akan ditukar. terus kepada jenis titik terapung.
  • Jika ia adalah rentetan, ia akan ditukar kepada nombor titik terapung. Jika rentetan tidak bermula dengan nombor, ia akan ditukar kepada 0.
  • Nilai Boolean benar akan ditukar kepada 1.0 dan palsu akan ditukar kepada 0.0.
  • Tatasusunan dan objek tidak boleh ditukar kepada nombor titik terapung, ia ditukar kepada 1.0.

d. (rentetan)

(rentetan)$var boleh menukar pembolehubah kepada rentetan Peraturan penukaran adalah seperti berikut:

  • Jika ia adalah jenis nilai berangka, ia ditukar terus kepada rentetan.
  • Jika ia adalah jenis Boolean, nilai Boolean true akan ditukar kepada rentetan "1", dan false akan ditukar menjadi rentetan kosong "".
  • Jika ia adalah tatasusunan, ia akan ditukar kepada rentetan "Array".
  • Jika ia adalah objek, ia akan ditukar kepada rentetan "Objek".
  • null akan ditukar kepada rentetan kosong "".

e. (tatasusunan)

(tatasusunan)$var boleh menukar pembolehubah kepada tatasusunan $var mestilah objek atau rentetan yang dipisahkan koma. Peraturan penukaran adalah seperti berikut:

  • Objek akan ditukar menjadi tatasusunan yang mengandungi sifat dan kaedah objek. Rentetan dengan pembatas
  • akan ditukar kepada tatasusunan yang diindeks secara berangka, setiap elemen ialah nilai bukan nol yang dipisahkan oleh pembatas.

f. (objek)

(objek)$var boleh menukar pembolehubah menjadi objek. $var mestilah array atau objek. Jika $var ialah tatasusunan, ia akan ditukar kepada objek standard kosong (stdClass).

3. Penukaran jenis automatik

Sebagai bahasa jenis dinamik, PHP secara automatik menentukan dan menukar jenis pembolehubah. Mari kita lihat beberapa peraturan untuk penukaran jenis automatik.

a. Menambah integer dan jenis titik terapung

Dalam PHP, apabila menambah integer dan jenis titik terapung, integer ditukar kepada jenis titik terapung dan kemudian ditambah.

b. Menambah rentetan dan jenis angka

Dalam PHP, apabila menambah rentetan dan jenis angka, rentetan akan ditukar kepada jenis angka dan kemudian ditambah.

c. Penukaran Tatasusunan dan Objek

Apabila menukar tatasusunan atau objek kepada jenis lain, ia ditukar kepada tatasusunan standard atau objek standard.

d. Menambah jenis Boolean dan angka pada rentetan

Dalam PHP, apabila menambahkan jenis Boolean dan angka pada rentetan, ia akan ditukar kepada jenis rentetan, dan kemudian Tambahnya semula.

4. Pengesanan jenis

PHP menyediakan beberapa fungsi pengesanan jenis yang boleh digunakan untuk menentukan jenis pembolehubah. Di bawah ini kami memperkenalkan beberapa fungsi pengesanan jenis yang biasa digunakan.

a. is_bool()

is_bool($var) digunakan untuk menentukan sama ada sesuatu pembolehubah adalah daripada jenis Boolean, ia akan mengembalikan true, jika tidak ia akan mengembalikan false.

b. ialah_objek()

is_object($var) digunakan untuk menentukan sama ada pembolehubah ialah objek. Jika ya, ia mengembalikan benar, jika tidak ia mengembalikan palsu.

c. is_array()

is_array($var) digunakan untuk menentukan sama ada pembolehubah ialah tatasusunan.

d. is_string()

is_string($var) digunakan untuk menentukan sama ada pembolehubah ialah rentetan.

e. is_numeric()

is_numeric($var) digunakan untuk menentukan sama ada sesuatu pembolehubah adalah angka.

5. Ringkasan

Artikel ini memperkenalkan penukaran jenis dan pengesanan jenis dalam PHP, termasuk peraturan untuk penukaran jenis paksa dan penukaran jenis automatik serta beberapa fungsi pengesanan jenis. Dalam pembangunan, menggunakan fungsi penukaran jenis dan fungsi pengesanan jenis yang betul boleh mengelakkan masalah yang disebabkan oleh penukaran jenis dengan berkesan. Pada masa yang sama, semasa mereka bentuk program, anda juga harus memberi perhatian kepada kekangan jenis pembolehubah untuk mengurangkan kesan negatif ciri jenis lemah pada program.

Atas ialah kandungan terperinci PHP pembelajaran jenis data penukaran automatik. 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