Saya (masih) baharu dalam PHP dan belajar sambil saya pergi.
Saya selalunya perlu mendapatkan semula pembolehubah tertentu dan mengakses sifatnya.
<?php $id = $_REQUEST['id']; $user_info = get_userdata($id); echo('Username: ' . $user_info->user_login . "<br>"); echo('User level: ' . $user_info->user_level . "<br>"); echo('User ID: ' . $user_info->ID . "<br>"); echo('First Name: ' . $user_info->user_firstname . "<br>"); echo('Family Name: ' . $user_info->user_lastname . "<br>"); echo('user_registered: ' . $user_info->user_registered . "<br>"); ?>
Saya lebih suka mengambil semula $user_info = get_userdata($id);
sekali dan kemudian menggunakannya apabila diperlukan
Dalam fail yang sama, tetapi dalam <?php?>
blok
<?php $id = $_REQUEST['id']; $user_info = get_userdata($id); ?> <some HTML> <?php echo $user_info->user_login; ?> <some HTML> <?php echo $user_info->user_login; ?>
Tetapi saya mengesyaki $user_info
tidak boleh dikongsi antara blok kerana ia bukan global.
Apakah pendekatan biasa?
Anda boleh menggunakannya di dalam blok (gelung, jika pernyataan) tetapi tidak di dalam fungsi. Untuk menjadikannya berfungsi di dalam fungsi, anda perlu menggunakan kata kunci
global
:Anda boleh membaca lebih lanjut tentang skop pembolehubah PHP pada dokumentasi rasmi :)
Anda memberi terlalu banyak makna dalam blok kod php anda.
Ini bukan perkara global.
Blok ini tergolong dalam skrip PHP yang sama. Ia hanyalah cara bijak untuk mengeluarkan HTML, tidak lebih. Anda boleh menggantikannya dengan HTML gema tanpa sebarang perbezaan.
Keseluruhan skrip PHP dilaksanakan sekali gus, dan bukannya secara berulang, seperti yang anda bayangkan, fikirkan bahagian PHP yang dilaksanakan pada bahagian pelayan, kemudian bahagian HTML dilaksanakan pada bahagian klien, kemudian kembali ke bahagian PHP pada bahagian pelayan dan lain-lain. Ini adalah salah.
Keseluruhan skrip PHP dilaksanakan di bahagian pelayan, menjana HTML biasa dalam penyemak imbas, kemudian hilang.
Itulah sebabnya anda tidak boleh memprogramkan kedua-dua bentuk HTML dan pengendalinya dalam skrip PHP yang sama, cuma letakkan yang kedua selepas yang pertama. Anda kena panggil pelayan sekali lagi untuk pengendali berfungsi dengan baik. Ini akan menjadi satu lagi panggilan sepenuhnya, satu lagi contoh skrip yang sama, tidak tahu apa-apa tentang panggilan sebelumnya, yang sudah lama mati. Ini satu lagi perkara yang anda mesti tahu tentang PHP:
Pelaksanaan skrip PHP adalah atom. Ia bukan seperti aplikasi desktop yang sentiasa berjalan dalam penyemak imbas, atau malah daemon yang sentiasa disambungkan ke aplikasi desktop. Ia lebih seperti utiliti baris arahan - melakukan tugasnya dan keluar. Ia berjalan secara bebas: