Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyelesaian kepada Notis PHP: Pembolehubah tidak ditentukan: kandungan

Penyelesaian kepada Notis PHP: Pembolehubah tidak ditentukan: kandungan

王林
王林asal
2023-06-23 09:15:551630semak imbas

Jika anda pernah mengalami ralat Pembolehubah tidak ditentukan: kandungan semasa pembangunan PHP, artikel ini akan memberikan anda penyelesaian.

Dalam PHP, apabila anda mengisytiharkan pembolehubah tetapi tidak memberikan nilai, ralat Pembolehubah tidak ditentukan: kandungan berlaku. Ralat ini biasanya berlaku dalam situasi berikut:

  1. Nama pembolehubah dieja dengan salah
  2. Pembolehubah dibaca tanpa dimulakan
  3. Pembolehubah ditakrifkan dalam; fungsi Dalaman, tetapi dipanggil di luar fungsi; pembolehubah
  4. ditakrifkan di dalam blok kod, tetapi dipanggil di luar blok kod.

Mari kita bincangkan penyelesaian kepada empat situasi ini secara terperinci.

  1. Nama pembolehubah dieja dengan salah

Dalam kes ini, kita perlu menyemak dengan teliti sama ada nama pembolehubah dalam kod dieja dengan betul. Jika kita menulis $content, tetapi nama pembolehubah sepatutnya ialah $contents, maka pembolehubah tidak ditentukan: ralat kandungan akan berlaku.

Untuk mengelakkan ralat ini, adalah disyorkan untuk menggunakan kaedah penamaan piawai semasa mentakrifkan pembolehubah, dan cuba elakkan mentakrifkan nama pembolehubah dalam pinyin, huruf besar bercampur, dsb. Pada masa yang sama, semasa menulis kod, anda boleh menggunakan fungsi pelengkapan automatik IDE, atau anda boleh menggunakan alatan seperti phpStorm untuk membantu kami mengelakkan ralat jenis ini.

  1. Pembolehubah dibaca tanpa dimulakan

Sebelum kita menggunakan pembolehubah, kita mesti memulakannya terlebih dahulu, untuk mengelakkan ralat Pembolehubah tidak ditentukan: kandungan . Kita perlu menyemak sama ada keadaan ini wujud dalam kod:

$content = "hello world";
echo $content;

Jika kami tidak memberikan nilai kepada $content, tetapi secara langsung Apabila menggunakan echo $content, ralat Undefined variable: content akan berlaku.

Penyelesaian adalah untuk memulakan pembolehubah sebelum menggunakannya. Sebagai contoh, tukar baris pertama contoh di atas kepada:

$content = "";

Ini akan mengelakkan pembolehubah Tidak ditentukan: ralat kandungan.

  1. Lazimnya pembolehubah ditakrifkan di dalam fungsi tetapi dipanggil di luar fungsi

. Kami mentakrifkan pembolehubah di dalam fungsi, tetapi ia tidak boleh diakses di luar fungsi. Contohnya:

test function()
{

rreee

}
echo $content;

Kod ini akan melaporkan ralat Pembolehubah tidak ditentukan: kandungan kerana $ kandungan Ia ditakrifkan di dalam fungsi dan tidak boleh diakses di luar fungsi.

Untuk menyelesaikan masalah ini, kita perlu mentakrifkan $kandungan di luar fungsi. Kod yang diubah suai adalah seperti berikut:

$content = "";
function test()
{

$content = "hello world";

}
test();
echo $ kandungan ;

Kod ini menggunakan kata kunci global untuk mengisytiharkan $kandungan sebagai pembolehubah global. Dengan cara ini kita boleh mengendalikannya di dalam fungsi dan mengaksesnya di luar fungsi.

  1. Pembolehubah ditakrifkan di dalam blok kod tetapi dipanggil di luar blok kod

Situasi ini serupa dengan situasi di mana pembolehubah ditakrifkan di dalam fungsi. Pembolehubah yang ditakrifkan dalam blok kod (seperti jika, untuk, sementara, dll.) tidak boleh digunakan di luar blok kod.

Penyelesaian adalah untuk mengalihkan definisi pembolehubah di luar blok kod. Contohnya:

if ($a == 1)
{

global $content;
$content = "hello world";

}
echo $content;

Kod ini akan melaporkan ralat Pembolehubah tidak ditentukan : content , kerana $content ditakrifkan dalam blok kod if. Untuk membetulkan ini, kita harus menentukan $content di luar blok kod. Seperti berikut:

$content = "";
if ($a == 1)
{

$content = "a is 1";

}
echo $content;

Ini akan mengelakkan pembolehubah tidak ditentukan: ralat kandungan.

Ringkasan

Semasa proses pembangunan PHP, kami sering menghadapi ralat Pembolehubah tidak ditentukan: kandungan. Ralat ini biasanya berlaku apabila nama pembolehubah dieja dengan salah, pembolehubah dibaca tanpa dimulakan, pembolehubah ditakrifkan di dalam fungsi tetapi dipanggil di luar fungsi, pembolehubah ditakrifkan di dalam blok kod tetapi dipanggil di luar blok kod, dsb.

Untuk mengelakkan ralat ini, kita perlu menormalkan nama pembolehubah, menggunakan fungsi pelengkapan automatik IDE, memulakan pembolehubah, mengisytiharkan pembolehubah sebagai pembolehubah global dan mengalihkan definisi pembolehubah di luar blok kod.

Atas ialah kandungan terperinci Penyelesaian kepada Notis PHP: Pembolehubah tidak ditentukan: kandungan. 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