ความหมายของ% s,% 1 $ s ฯลฯ คืออะไร? [ปิด]


14

จากคำถามถาม - ตอบฉันได้พบกับสิ่งเก่า ๆ แต่ฉันกลัวฉันพบว่าตัวเองอยู่ในสภาพที่ฉันยังไม่ทราบความหมายของพวกเขาและไม่รู้ว่าทำไมถึงใช้พวกเขา

  • %1$s - (พบว่าโหลดรหัสวิดเจ็ต)
  • %2$s - (พบว่าโหลดคลาส / คลาสวิดเจ็ต)
  • %s- (พบที่นี่ )

และสิ่งต่อไปนี้ทำงานอย่างไร ฉันหมายถึงคำอธิบายของรูปแบบรหัสคืออะไร

  • !Website::getThemeOption("format_post/{$post_format}/content/hide")):- (พบที่นี่ )
  • if( !wp_verify_nonce( $_POST['my_noncename'] ) plugin_basename( __FILE__ ) ) return;- (พบที่นี่ )

คำถามนี้สามารถไปเรื่อย ๆ ... ฉันรู้ แต่สิ่งเหล่านี้ไม่ได้อธิบายอย่างชัดเจนทุกที่ ฉันไม่เพียง แต่ต้องการความหมายและวัตถุประสงค์ของพวกเขา แต่ต้องการคำอธิบายภายใน / แกนกลางเพื่อให้ฉันสามารถเข้าใจแรงจูงใจและวิธีการทำงานของพวกเขา

และถ้าสิ่งเหล่านี้มีการกำหนดไว้อย่างชัดเจนแล้วใน Codex ฉันชอบที่จะอ่าน และชอบที่จะมีรายการสิ่งที่อยากรู้อยากเห็นหากรายการดังกล่าวได้ถูกแยกออกแล้ว


3
นี่คือ PHP ธรรมดาทั้งหมด sprintf()ดู
fuxia

Codex มีอยู่เพื่อให้เอกสารเฉพาะ WordPress มันไม่ได้มีไว้เพื่อสอนการเขียนโปรแกรม PHP และคำถามของคุณทั้งหมดเกี่ยวกับการเขียนโปรแกรม PHP คุณสามารถดูเอกสาร PHP ได้ที่php.netและสามารถพบบทเรียนแบบฝึกหัดสำหรับผู้เริ่มต้น PHP ได้โดยใช้ Google
Ben Miller - จดจำ Monica

2
@ BenMiller: โปรดอดใจรอ ก่อนที่จะแสดงความคิดเห็นฉันยังไม่รู้เกี่ยวกับตำแหน่งของคำถาม มันเกือบจะชัดเจนแล้วในตอนนี้ด้วยคำตอบของเดฟ
Mayeenul Islam

@MayeenulIslam ฉันแค่พยายามอธิบายว่าทำไมคุณไม่พบคำอธิบายใน Codex ฉันขอโทษถ้าฉันเป็นคนใจร้อน
Ben Miller - จำ Monica

คำตอบ:


11

นี่เป็นคำถามทั่วไปเกี่ยวกับการเขียนโปรแกรม PHP และอาจถูกปิดด้วยเหตุผลดังกล่าว แต่ก่อนที่จะเกิดขึ้นเรามาดูกันว่าฉันไม่สามารถเคลียร์สิ่งนี้ให้คุณได้บ้างไหม

สตริงผู้ที่เริ่มมีอาการ% อยู่ในรูปแบบ "printf" ตัวอย่างเช่น%2$sแปลเป็น "แทนที่โทเค็นนี้ด้วยพารามิเตอร์ที่สองและถือว่าเป็นสตริง"

เมื่อคุณเห็นตัวแปรในวงเล็บปีกกาภายในสตริงเช่นว่าเป็นเช่นเดียวกับการวางตัวแปรโดยไม่ต้องมีวงเล็บปีกกาเช่น"Today is {$day}" "Today is $day"แต่การจัดรูปแบบตัวแปรเช่นนี้ทำให้โดดเด่นกว่าดังนั้นจึงมีความชัดเจนมากกว่าว่ามีตัวแปรอยู่ที่นั่น นอกจากนี้ยังป้องกันไม่ให้ตัวละครอื่น ๆ ที่อยู่ถัดจากชื่อตัวแปรถูกตีความเป็นส่วนหนึ่งของชื่อ โดยไม่ต้องวงเล็บปีกกา, PHP จะได้รู้ว่าจะทำอะไรกับ"Your robot name would be {$firstName}Number5"? มันจะเห็น"$firstNameNumber5"และมองหาตัวแปรชื่อ $ firstNameNumber5 แทนที่จะเป็นเพียง $ firstName

ฉันไม่แน่ใจว่าสิ่งที่คุณถามเกี่ยวกับในตัวอย่างสุดท้าย คือมัน__FILE__คุณกำลังสับสน? นั่นคือPHP Magic Constantที่ถูกแทนที่ด้วยพา ธ เต็มไปยังไฟล์ที่มีโค้ดอยู่


ก่อนที่จะปิดตัวลงเพียงคนเดียวที่ผ่านมา: !Website::. ทำไมลำไส้ใหญ่สองอันที่นั่น?
Mayeenul Islam

2
::จะทำอย่างไรกับการเขียนโปรแกรมเชิงวัตถุ - ในกรณีที่Website::getThemeOptionคุณกำลังเรียกฟังก์ชั่นที่อยู่ในชั้นเรียนgetThemeOption Website
Pat J

2
นอกจากนี้: {$var}ช่วย PHP แยกความแตกต่างระหว่างสิ่งที่ต้องการ{$complete_variable_name}และ{$prefix}_rest_of_nameตัวอย่างเช่น
Pat J

FIY double colon ใช้เพื่อเข้าถึงเฉพาะเมธอดและคุณสมบัติแบบสแตติกหรือแทนที่ของคลาสด้วยวิธีการปกติที่คุณใช้ -> เช่น $ myObject-> someMethod ();
ed-ta
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.