PHP - Menyimpan fungsi untuk dijalankan nanti

Idealnya yang ingin saya miliki adalah daftar fungsi yang bisa dijalankan nanti. Bergantung pada input pengguna, suatu fungsi akan dipilih. Pengguna kemudian akan ditanyai parameter untuk fungsi tersebut. Ini akan terjadi beberapa kali hingga pengguna memasukkan bahwa mereka ingin semua fungsi dijalankan satu sama lain.

Saya tidak dapat memiliki satu formulir karena tidak ada jumlah langkah yang tetap. Jumlah fungsi tergantung pada pengguna. Mereka akan memasukkan fungsi-fungsi yang mereka inginkan hingga mereka memasukkan bahwa mereka ingin semua fungsi dijalankan sesuai urutan inputnya.

misalnya Input--Respon Seorang pengguna akan memberikan masukan. -- lari....... Tergantung masukannya, mereka akan ditanyai parameternya. Seberapa jauh dan seberapa cepat? -- 100 dan 10......Fungsinya menjadi run(100,10)

Masukan lain -- teriak.........Teriakkan apa? -- Hai........Fungsinya menjadi teriak(hai)

Masukan selanjutnya --- lompat...... Seberapa tinggi? -- 8......... Fungsinya adalah lompat(8)

Setelah itu ketika pengguna memberikan input "play", hal berikut harus dilakukan secara berurutan: run(100,10), shout(hi), jump(8)

Terima kasih sebelumnya :)


person QLN33    schedule 02.01.2011    source sumber
comment
Apakah Anda ingin hal ini terjadi secara interaktif? yaitu: Apakah Anda mencoba menulis parser?   -  person John Parker    schedule 02.01.2011
comment
Pertanyaan yang bentuknya sangat buruk. apakah itu aplikasi web biasa atau aplikasi konsol? apa gunanya tidur di sini? Mengapa dilakukan dalam beberapa langkah, bukan dalam bentuk tunggal?   -  person Your Common Sense    schedule 02.01.2011
comment
baiklah, menurut saya antarmuka pengguna akan menjadi hal yang lebih rumit daripada menjalankan semua fungsi Anda secara berurutan. Simpan saja semua input pengguna dalam array sesi, lalu ulangi, dapatkan fungsi dan parameter, lalu jalankan   -  person Your Common Sense    schedule 02.01.2011
comment
Benar, terima kasih! Juga bagaimana jika itu adalah aplikasi konsol? Lalu bagaimana Anda melakukannya?   -  person QLN33    schedule 02.01.2011


Jawaban (1)


Pada langkah pertama, Anda dapat menyimpan nama fungsi dalam sebuah variabel, lalu menggunakan call_user_func($funcName, $arg1, $arg2, ..) untuk memanggilnya dengan argumen dari langkah kedua.

Dan jika Anda mencoba memanggil metode pada suatu kelas dan bukan fungsi global, Anda harus menyimpannya sebagai array($instance, 'methodName'), atau array('className', 'methodName') untuk metode statis.

person Seldaek    schedule 02.01.2011