PHP ialah bahasa pengaturcaraan popular yang digunakan untuk pembangunan web. Tatasusunan adalah salah satu jenis data yang paling penting dalam PHP. Menggunakan tatasusunan PHP, anda boleh menyimpan dan mengakses berbilang item data. Walau bagaimanapun, kadangkala anda mungkin menghadapi situasi di mana tatasusunan PHP tidak mendapat nilai. Artikel ini akan membincangkan sebab untuk ini dan memberikan penyelesaian.
Sebab mengapa tatasusunan PHP tidak mempunyai pemerolehan nilai
Dalam PHP, akses kepada elemen tatasusunan dicapai melalui kekunci. Kunci mesti dieja dengan betul untuk mengakses elemen tatasusunan. Jika anda salah mengeja nama kunci, anda tidak akan dapat mengakses sebarang elemen tatasusunan.
Contohnya:
$my_array = array("key1" => "value1", "key2" => "value2"); echo $my_array["key1"]; // 输出 "value1" echo $my_array["key3"]; // 键名拼写错误,无法输出任何值
Gunakan fungsi unset() untuk memadamkan elemen dalam tatasusunan. Jika anda menggunakan fungsi unset() untuk memadamkan elemen tatasusunan sebelum menggunakannya, anda tidak boleh mengakses elemen yang dipadamkan.
Contohnya:
$my_array = array("key1" => "value1", "key2" => "value2"); unset($my_array["key1"]); echo $my_array["key1"]; // 这里的输出为空,因为key1已经被删除了
Apabila anda menggunakan tatasusunan PHP, anda boleh menggunakan "nama kunci am" dan " Nama kunci komposit". Biasanya nama kunci ialah rentetan ringkas yang mengandungi hanya huruf dan nombor. Walau bagaimanapun, nama kunci komposit mengandungi titik (.) dan kurungan segi empat sama [].
Contohnya:
$my_array = array("complex.key" => "value", "complex[name]" => "John"); echo $my_array["complex.key"]; // 这里的输出为"value" echo $my_array["complex[name]"]; // 这里的输出为"John"
Tetapi jika anda menggunakan sintaks yang tidak sah atau salah semasa mengakses elemen tatasusunan nama kunci komposit, anda tidak akan dapat mengakses elemen tatasusunan ini.
Contohnya:
$my_array = array("complex.key" => "value", "complex[name]" => "John"); echo $my_array[complex.key]; // 这里的语法有误,无法输出任何值 echo $my_array[complex-name]; // 这里的语法有误,无法输出任何值
Jika anda mentakrif tatasusunan kosong atau cuba mengaksesnya tanpa menambah sebarang elemen pada array , anda tidak boleh mendapatkan sebarang nilai dalam array.
Contohnya:
$my_array = array(); echo $my_array["key1"]; // 数组为空,无法输出任何值
Pembolehubah tidak diinisialisasi boleh menyebabkan tatasusunan gagal mendapatkan nilai. Jika anda cuba mengakses pembolehubah yang tidak ditentukan, ia akan menghasilkan amaran PHP, "Pembolehubah tidak ditentukan".
Contohnya:
echo $undefined_array["key1"]; // 这里会出现 Undefined variable 警告,并且无法输出任何值
Bagaimana untuk menyelesaikan masalah tiada pemerolehan nilai dalam tatasusunan PHP
Jika PHP Jika tiada nilai untuk diperoleh daripada tatasusunan, mula-mula pastikan nama kunci dieja dengan betul. Jika anda tidak pasti, anda boleh menyemak struktur tatasusunan menggunakan fungsi print_r() atau var_dump().
Contohnya:
$my_array = array("key1" => "value1", "key2" => "value2"); print_r($my_array); /* 输出: Array ( [key1] => value1 [key2] => value2 ) */ echo $my_array["key1"]; // 这里的输出为"value1"
Sahkan bahawa elemen tatasusunan yang anda akses sudah wujud. Jika anda menggunakan fungsi unset() atau kaedah lain untuk memadamkan elemen tatasusunan, pastikan kekunci yang sepadan telah dipadamkan.
Contohnya:
$my_array = array("key1" => "value1", "key2" => "value2"); unset($my_array["key1"]); // 确认 $my_array["key1"] 是否存在 var_dump(isset($my_array["key1"])); // 输出为bool(false) echo $my_array["key1"]; // 由于$key1已经被删除,无法输出任何值
Gunakan sintaks yang betul untuk mengakses kunci komposit nama. Contohnya, gunakan key1, bukan key[1]
Contohnya:
$my_array = array("complex.key" => "value", "complex[name]" => "John"); echo $my_array[complex.key]; // 这里的语法错误,应该是 $my_array["complex.key"] echo $my_array[complex[name]]; // 这里的语法错误,应该是 $my_array["complex[name]"]
Semak sama ada array kosong. Jika ya, anda perlu menambah data pada tatasusunan sebelum anda boleh mendapatkannya.
Contohnya:
$my_array = array(); $my_array["key1"] = "value1"; // 添加值到数组 echo $my_array["key1"]; // 输出为"value1",由于数组元素已经被添加
Pastikan pembolehubah ditakrifkan sebelum cuba mengakses pembolehubah yang tidak ditentukan. Anda boleh menggunakan fungsi isset() untuk menyemak sama ada pembolehubah telah ditakrifkan.
Contohnya:
if (isset($undefined_array)) { echo $undefined_array["key1"]; } else { echo "变量未定义"; }
Kesimpulan
Semasa proses pembangunan, masalah tiada pemerolehan nilai dalam tatasusunan PHP mungkin menyebabkan pembangun membuang banyak masa mencari penyelesaian. Artikel ini membincangkan punca keadaan ini dan menyediakan penyelesaian. Apabila bekerja dengan tatasusunan PHP, pastikan nama kunci adalah betul, unsur tatasusunan wujud, sintaksnya betul, tatasusunan tidak kosong dan pembolehubah ditakrifkan. Langkah mudah ini boleh membantu anda mengelakkan masalah pengambilan nilai tatasusunan PHP.
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika tiada nilai dalam tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!