Rumah > Soal Jawab > teks badan
Saya seorang pemula, saya menggunakan phpstorm untuk menulis kod berikut di rumah dan ia akan berjalan tanpa ralat
Kodnya adalah seperti berikut:
<?php
$x=5; // Pembolehubah global
fungsi myTest()
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
}
myTest();
echo "<p>Uji fungsi pembolehubah luaran:<p>";
echo "Pembolehubah x ialah: $x";
echo "
";
echo "Pembolehubah y ialah: $ y";
?>
Tetapi semasa saya sedang bekerja, penyemak imbas melaporkan gesaan ini, seperti berikut:
Pembolehubah dalam fungsi ujian:
Notis: Pembolehubah tidak ditentukan: x dalam F:WEBDEVELOPIndex.php pada baris 8
Pembolehubah x ialah:
Pembolehubah y ialah: 10
Uji Pembolehubah di luar fungsi:
Pembolehubah x ialah: 5
Notis: Pembolehubah tidak ditentukan: y dalam F:WEBDEVELOPIndex.php pada baris 18
Pembolehubah y ialah:
Soalan:
Saya sedang membaca tutorial PHP dan ia mengatakan bahawa $ boleh digunakan untuk mentakrifkan pembolehubah, tetapi ia telah digesa bahawa pembolehubah x belum diisytiharkan. Bolehkah seseorang menjelaskannya kepada saya? Terima kasih
女神的闺蜜爱上我2017-06-07 09:25:08
Saya rasa ralat tidak dilaporkan di rumah tetapi ralat itu dilaporkan oleh syarikat kerana tetapan tahap ralat PHP yang berbeza Anda boleh cuba menambah kod berikut pada permulaan kod:
error_reporting(E_ALL ^ E_NOTICE);// 除了E_NOTICE之外,报告所有的错误
Ini ditetapkan secara dinamik, anda juga boleh menetapkannya dalam php.ini, kaedah khusus boleh didapati di Baidu;
Pembolehubah dalam fungsi ditutup kepada dunia luar Jika ia ditetapkan di luar, ia tidak boleh digunakan di dalam versi PHP Ia dijelaskan secara terperinci di tingkat atas.
迷茫2017-06-07 09:25:08
Pembolehubah global PHP diterangkan secara terperinci di sini
Untuk menentukan pembolehubah global secara luaran, apabila menggunakannya di dalam fungsi, anda perlu menggunakan kata kunci global, yang merupakan keperluan tatabahasa, atau gunakan tatasusunan $GLOBAL
女神的闺蜜爱上我2017-06-07 09:25:08
Anda perlu mengisytiharkannya sebagai pembolehubah global, global $x hanya kemudian
;巴扎黑2017-06-07 09:25:08
Anda boleh mencari kata kunci "skop". Skop pembolehubah setiap bahasa adalah berbeza dan boleh difahami secara perbandingan.
曾经蜡笔没有小新2017-06-07 09:25:08
Lihat versi PHP yang anda uji dan versi PHP dalam persekitaran kerja anda. Saya tidak pasti tentang versi baharu Skop pembolehubah global dalam 5.3 dan 5.6 tidak termasuk bahagian dalam fungsi, jadi adalah perkara biasa bahawa fungsi itu tidak dapat mengenali $x, kerana tiada pembolehubah sedemikian dalam skop. fungsinya