Apa arti dari% s,% 1 $ s dll? [Tutup]

14

Dari T&J Utas saya datang untuk bertemu dengan beberapa hal lama, tetapi saya khawatir, saya menemukan diri saya dalam kondisi itu, saya masih tidak tahu arti dari mereka dan tidak tahu mengapa harus menggunakannya.

  • %1$s - (ditemukan memuat id widget)
  • %2$s - (ditemukan memuat kelas / kelas widget)
  • %s- (ditemukan di sini )

Dan bagaimana cara kerja hal-hal berikut? Maksud saya, apa penjelasan format kode?

  • !Website::getThemeOption("format_post/{$post_format}/content/hide")):- (ditemukan di sini )
  • if( !wp_verify_nonce( $_POST['my_noncename'] ) plugin_basename( __FILE__ ) ) return;- (ditemukan di sini )

Pertanyaan ini bisa terus dan terus ..., saya tahu. Tetapi hal-hal seperti ini tidak dijelaskan dengan jelas di mana pun. Saya, tidak hanya menginginkan makna dan tujuan mereka, tetapi menginginkan beberapa penjelasan inti / inti sehingga saya dapat memahami motif mereka dan cara kerjanya.

Dan juga, jika hal-hal seperti itu sudah didefinisikan dengan jelas dalam Codex, saya ingin membacanya. Dan akan sangat senang memiliki daftar hal-hal aneh seperti jika daftar tersebut sudah beres.

Mayeenul Islam
sumber
3
Ini semua PHP biasa. Lihat sprintf().
fuxia
Codex ada untuk menyediakan dokumentasi khusus WordPress. Ini tidak dimaksudkan untuk mengajarkan pemrograman PHP, dan semua pertanyaan Anda adalah tentang pemrograman PHP. Dokumentasi PHP dapat ditemukan di php.net , dan banyak tutorial pemula PHP dapat ditemukan menggunakan Google.
Ben Miller - Reinstate Monica
2
@BenMiller: Tolong bersabarlah. Sebelum komentar toscho, saya bahkan tidak mengetahui tentang posisi pertanyaan itu. Hampir jelas sekarang dengan jawaban Dave.
Mayeenul Islam
@ MayeenulIslam, saya hanya berusaha menjelaskan mengapa Anda tidak menemukan penjelasan seperti itu di Codex. Saya minta maaf jika saya terlihat tidak sabar.
Ben Miller - Reinstate Monica

Jawaban:

11

Ini benar-benar lebih dari pertanyaan pemrograman PHP umum dan mungkin ditutup karena alasan itu. Tetapi sebelum itu terjadi, mari kita lihat apakah saya tidak bisa menjernihkannya untuk Anda.

String yang dimulai dengan tanda% berada dalam "format printf" . Misalnya, %2$sditerjemahkan menjadi "ganti token ini dengan parameter kedua, dan perlakukan seperti string".

Ketika Anda melihat variabel dalam kurung kurawal di dalam string, seperti "Today is {$day}", itu sama dengan menempatkan variabel di sana tanpa kurung kurawal, seperti "Today is $day". Tetapi memformat variabel seperti ini membuatnya menonjol, jadi lebih jelas ada variabel di sana. Itu juga mencegah karakter lain di sebelah nama variabel dari ditafsirkan sebagai bagian dari nama. Tanpa kurung kurawal, apakah PHP tahu apa yang harus dilakukan "Your robot name would be {$firstName}Number5"? Itu akan melihat "$firstNameNumber5"dan mencari variabel bernama $ firstNameNumber5 bukan hanya $ firstName.

Saya tidak yakin apa yang Anda tanyakan dalam contoh terakhir. Apakah __FILE__Anda bingung? Itu adalah PHP Magic Constant yang diganti dengan path lengkap ke file yang berisi sedikit kode.

Dave Ross
sumber
Sebelum mendapatkan ditutup hanya satu sederhana terakhir: !Website::. Mengapa usus ganda ada di sana?
Mayeenul Islam
2
Ada ::hubungannya dengan pemrograman berorientasi objek - dalam kasus Website::getThemeOption, Anda memanggil fungsi getThemeOptionmilik kelas Website.
Pat J
2
Juga: {$var}membantu PHP membedakan antara sesuatu seperti {$complete_variable_name}dan {$prefix}_rest_of_name, misalnya.
Pat J
FIY double colon digunakan untuk mengakses metode dan properti statis atau override dari suatu kelas, dengan metode reguler yang Anda gunakan -> mis. $ MyObject-> someMethod ();
ed-ta