Saya telah mencoba mencari cara untuk melakukan ini tetapi saya tidak yakin bagaimana caranya.
Berikut adalah contoh dari apa yang saya coba lakukan:
class test {
public newTest(){
function bigTest(){
//Big Test Here
}
function smallTest(){
//Small Test Here
}
}
public scoreTest(){
//Scoring code here;
}
}
Inilah bagian yang bermasalah dengan saya, bagaimana cara memanggil bigTest ()?
Jawaban:
Coba yang ini:
sumber
function()
dari halaman .php lain di dalam fungsi kelas dan kemudian mengambil hasil di dalam fungsi kelas? misalnya saya memiliki kueri yang memilih semua dari tabel dan kemudian mengembalikan kumpulan hasil ambil semua. Apakah mungkin untuk mengulang melalui hasil yang ditetapkan di dalam fungsi kelas? misalnyaclass query{ public function show(){ getResults(); while($stmt->fetchCollumn()){ ECHO RESULTS HERE }
Sampel yang Anda berikan bukan PHP yang valid dan memiliki beberapa masalah:
bukanlah deklarasi fungsi yang tepat - Anda perlu mendeklarasikan fungsi dengan kata kunci 'function'.
Sintaksnya seharusnya:
Kedua, menggabungkan fungsi bigTest () dan smallTest () dalam fungsi publik () {} tidak membuatnya pribadi - Anda harus menggunakan kata kunci privat pada keduanya secara individual:
Juga, itu adalah konvensi untuk menggunakan nama kelas dalam deklarasi kelas ('Test').
Semoga membantu.
sumber
sumber
Saya pikir Anda sedang mencari sesuatu seperti ini.
sumber
Anda perlu memanggil
newTest
untuk membuat fungsi yang dideklarasikan di dalam metode itu "terlihat" (lihat Fungsi di dalam fungsi ). Tapi itu hanya fungsi normal dan tidak ada metode.sumber
Untuk memiliki "fungsi dalam suatu fungsi", jika saya mengerti apa yang Anda tanyakan, Anda memerlukan PHP 5.3, di mana Anda dapat memanfaatkan fitur Penutupan yang baru.
Jadi Anda bisa memiliki:
sumber
Untuk memanggil metode apa pun dari objek yang dipakai dari kelas (dengan pernyataan baru), Anda perlu "menunjuk" ke sana. Dari luar Anda cukup menggunakan sumber daya yang dibuat oleh pernyataan baru. Di dalam objek apa pun yang dibuat PHP oleh new, simpan sumber daya yang sama ke dalam variabel $ this. Jadi, di dalam kelas Anda HARUS menunjuk ke metode dengan $ this. Di kelas Anda, untuk memanggil
smallTest
dari dalam kelas, Anda harus memberi tahu PHP manakah dari semua objek yang dibuat oleh pernyataan baru yang ingin Anda jalankan, cukup tulis:sumber
Contoh 1
contoh2
sumber
Anda juga dapat menggunakan
self::CONST
bukan$this->CONST
jika Anda ingin memanggil variabel statis atau fungsi dari kelas saat ini.sumber
keluaran:
f2 jalankan f1 run
sumber