Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar rentetan php kepada nilai berangka
PHP ialah bahasa pengaturcaraan sebelah pelayan yang popular yang digunakan secara meluas untuk pembangunan web dan pemprosesan data Ia mempunyai set kaya dengan fungsi dan ciri terbina dalam. Apabila kami memproses input pengguna atau mendapatkan data daripada sumber luaran, kami selalunya perlu menukar rentetan kepada nilai berangka untuk operasi pengiraan dan perbandingan. Artikel ini akan memperkenalkan kaedah dan teknik untuk menukar rentetan PHP kepada nilai berangka, termasuk fungsi penukaran jenis, fungsi manipulasi rentetan dan ungkapan biasa. Mari mulakan!
PHP menyediakan beberapa fungsi penukaran jenis terbina dalam untuk menukar jenis nilai yang berbeza kepada jenis angka. Fungsi ini boleh mengendalikan jenis data yang berbeza seperti integer, nombor titik terapung, nilai Boolean dan masa tarikh. Berikut ialah beberapa fungsi penukaran jenis yang biasa digunakan:
(1) fungsi intval()
fungsi intval() digunakan untuk menukar rentetan kepada integer. Jika rentetan bermula dengan nombor, fungsi menukarnya kepada jenis integer jika rentetan bermula dengan aksara bukan angka, fungsi mengembalikan 0. Fungsi intval() juga boleh menentukan asas dan membulatkan bahagian perpuluhan.
Contohnya:
$str = '123'; $int = intval($str); // $int的值为123 $str = 'abc123'; $int = intval($str); // $int的值为0 $str = '123.45'; $int = intval($str); // $int的值为123 $str = '0x1a'; $int = intval($str, 16); // $int的值为26
(2) fungsi floatval()
Fungsi floatval() digunakan untuk menukar rentetan kepada nombor titik terapung. Sama seperti fungsi intval(), jika rentetan bermula dengan nombor, fungsi akan menukarnya kepada jenis nombor titik terapung jika rentetan itu bermula dengan aksara bukan angka, fungsi itu mengembalikan 0.
Contohnya:
$str = '3.14'; $float = floatval($str); // $float的值为3.14 $str = 'abc.123'; $float = floatval($str); // $float的值为0
(3) fungsi boolval()
fungsi boolval() digunakan untuk menukar rentetan kepada nilai Boolean. Jika rentetan itu ialah '0', '', 'false', 'null' atau tatasusunan kosong, fungsi itu akan mengembalikan palsu, sebaliknya ia mengembalikan benar. Fungsi boolval() juga boleh menukar jenis nilai lain kepada nilai Boolean.
Contohnya:
$str1 = '0'; $str2 = 'false'; $str3 = 'null'; $bool1 = boolval($str1); // $bool1的值为false $bool2 = boolval($str2); // $bool2的值为false $bool3 = boolval($str3); // $bool3的值为false $str4 = 'abc'; $bool4 = boolval($str4); // $bool4的值为true $int = 123; $bool5 = boolval($int); // $bool5的值为true
(4) fungsi strtotime()
Fungsi strtotime() digunakan untuk menukar rentetan masa tarikh kepada cap waktu Unix. Cap waktu Unix ialah bilangan saat dari 0:00:00 pada 1 Januari 1970 hingga masa semasa. Parameter fungsi boleh menjadi rentetan tarikh dan masa dalam sebarang format, seperti '2019-01-01', '2020-01-01 12:00:00', dsb. Jika rentetan tidak dikenali sebagai format datetime, fungsi mengembalikan palsu.
Contohnya:
$str = '2020-01-01 12:00:00'; $timestamp = strtotime($str); // $timestamp的值为1577875200
Selain fungsi penukaran taip, PHP juga menyediakan banyak fungsi manipulasi rentetan memproses bahagian berangka rentetan. Fungsi ini boleh melaksanakan fungsi seperti mengalih keluar bahagian bukan angka bagi rentetan, memintas nombor dengan panjang tertentu dan menentukan sama ada rentetan ialah nombor. Berikut ialah beberapa fungsi manipulasi rentetan yang biasa digunakan:
(1) fungsi preg_replace()
fungsi preg_replace() ialah fungsi penggantian rentetan berdasarkan ungkapan biasa dalam PHP, yang boleh digunakan untuk keluarkan Bahagian bukan angka rentetan. Kita boleh menggunakan ungkapan biasa untuk memadankan semua aksara bukan angka dan menggantikannya dengan apa-apa.
Contohnya:
$str = 'abc123xyz456'; $str = preg_replace('/\D/', '', $str); // $str的值为'123456'
Dalam ungkapan biasa, 'D' mewakili aksara bukan angka dan menambah '/' bermakna melepaskannya. Gunakan fungsi preg_replace() dan ungkapan biasa untuk menggantikan aksara bukan angka dengan rentetan kosong untuk mendapatkan rentetan yang mengandungi nombor sahaja.
(2) fungsi substr()
Fungsi substr() digunakan untuk memintas subrentetan pada kedudukan dan panjang yang ditentukan dalam rentetan. Kita boleh menggunakan fungsi ini untuk memintas bahagian berangka rentetan untuk melakukan penukaran jenis.
Contohnya:
$str = 'abc123xyz'; $str = substr($str, 3, 3); // $str的值为'123' $int = intval($str); // $int的值为123
(3) is_numeric() function
is_numeric() fungsi digunakan untuk menentukan sama ada rentetan ialah nombor. Fungsi mengembalikan benar jika rentetan ialah integer, nombor titik terapung atau nombor dalam notasi saintifik, sebaliknya ia mengembalikan palsu.
Contohnya:
$str1 = '123'; $str2 = '3.14'; $str3 = '1e10'; $str4 = 'abc'; $bool1 = is_numeric($str1); // $bool1的值为true $bool2 = is_numeric($str2); // $bool2的值为true $bool3 = is_numeric($str3); // $bool3的值为true $bool4 = is_numeric($str4); // $bool4的值为false
Ungkapan biasa ialah alat pemadanan teks yang fleksibel dan berkuasa yang boleh digunakan untuk rentetan Mengendalikan dalam pelbagai format. PHP mempunyai perpustakaan PCRE terbina dalam yang menyokong sintaks ungkapan biasa yang serasi dengan Perl. Kita boleh menggunakan ungkapan biasa untuk memadankan bahagian berangka rentetan dan melakukan penukaran jenis.
Contohnya:
$str1 = 'abc123xyz'; $str2 = '3.14E2'; $pattern = '/\d+/'; preg_match($pattern, $str1, $matches); // $matches的值为array('123') preg_match($pattern, $str2, $matches); // $matches的值为array('314') $int1 = intval($matches[0]); // $int1的值为123 $float1 = floatval($matches[0]); // $float1的值为123.0 $float2 = floatval($matches[0]) * 100; // $float2的值为12300.0
Dalam ungkapan biasa, 'd' mewakili aksara angka dan '+' mewakili padanan satu atau lebih aksara angka. Kami menggunakan fungsi preg_match() dan ungkapan biasa untuk memadankan bahagian berangka rentetan, dan menyimpan hasil padanan dalam tatasusunan $matches kemudian menggunakan fungsi intval() dan fungsi floatval() untuk menukar hasil padanan kepada integer dan jenis nombor titik terapung. Di samping itu, kita boleh memproses lagi keputusan padanan, seperti mendarab dengan 100 untuk mendapatkan nombor titik terapung.
Ringkasan
Artikel ini memperkenalkan kaedah dan teknik untuk menukar rentetan PHP kepada nilai berangka, termasuk fungsi penukaran jenis, fungsi operasi rentetan dan ungkapan biasa. Kaedah ini boleh mengendalikan pelbagai jenis rentetan dengan mudah seperti integer, float, boolean, datetimes, dsb. Akhir sekali, kami juga memperkenalkan cara menggunakan ungkapan biasa untuk memadankan bahagian berangka rentetan dan melakukan penukaran jenis. Menguasai kemahiran ini boleh menjadikan anda lebih selesa dalam proses pengaturcaraan PHP dan meningkatkan kecekapan pembangunan.
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan php kepada nilai berangka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!