Ý nghĩa của% s,% 1 $ s, v.v. [đóng cửa]


14

Từ một chủ đề hỏi đáp tôi đã gặp một số điều cũ, nhưng tôi sợ, tôi thấy mình trong một điều kiện rằng, tôi vẫn không biết ý nghĩa của chúng và không biết tại sao nên sử dụng chúng.

  • %1$s - (tìm thấy để tải id widget)
  • %2$s - (được tìm thấy để tải lớp / lớp widget)
  • %s- (tìm thấy ở đây )

Và làm thế nào những điều sau đây hoạt động? Tôi có nghĩa là những gì giải thích về định dạng mã?

  • !Website::getThemeOption("format_post/{$post_format}/content/hide")):- (tìm thấy ở đây )
  • if( !wp_verify_nonce( $_POST['my_noncename'] ) plugin_basename( __FILE__ ) ) return;- (tìm thấy ở đây )

Câu hỏi này có thể tiếp tục ... và tôi biết. Nhưng những thứ như thế này không được giải thích rõ ràng ở bất cứ đâu. Tôi, không chỉ muốn ý nghĩa và mục đích của chúng, mà còn muốn một số giải thích bên trong / cốt lõi để tôi có thể hiểu động cơ của chúng và cách chúng hoạt động.

Và ngoài ra, nếu những điều đó đã được xác định rõ ràng trong Codex, tôi rất thích đọc chúng. Và rất thích có một danh sách những điều tò mò như vậy nếu một danh sách như vậy đã được sắp xếp.


3
Đây là tất cả PHP đơn giản. Xem sprintf().
fuxia

Codex tồn tại để cung cấp tài liệu dành riêng cho WordPress. Nó không có ý định dạy lập trình PHP và tất cả các câu hỏi của bạn là về lập trình PHP. Tài liệu PHP có thể được tìm thấy tại php.net và rất nhiều hướng dẫn cho người mới bắt đầu PHP có thể được tìm thấy bằng Google.
Ben Miller - Tái lập Monica

2
@BenMiller: Hãy kiên nhẫn. Trước bình luận của toscho, tôi thậm chí không biết về vị trí của câu hỏi. Bây giờ gần như rõ ràng với câu trả lời của Dave.
Hồi giáo Mayeenul

@MayeenulIslam, tôi chỉ cố gắng giải thích lý do tại sao bạn không tìm thấy những giải thích như vậy trong Codex. Tôi xin lỗi nếu tôi đi qua như thiếu kiên nhẫn.
Ben Miller - Tái lập Monica

Câu trả lời:


11

Đây thực sự là một câu hỏi lập trình PHP chung và có thể bị đóng vì lý do đó. Nhưng trước khi điều đó xảy ra, hãy xem liệu tôi không thể làm rõ điều này cho bạn.

Những chuỗi bắt đầu bằng dấu% đang ở "định dạng printf" . Ví dụ: %2$sdịch thành "thay thế mã thông báo này bằng tham số thứ hai và coi nó như một chuỗi".

Khi bạn thấy một biến trong dấu ngoặc nhọn bên trong một chuỗi, giống như "Today is {$day}", đặt nó giống như đặt biến đó ở đó mà không có dấu ngoặc nhọn, như"Today is $day" . Nhưng định dạng biến như thế này làm cho nó nổi bật, vì vậy rõ ràng hơn có một biến ở đó. Nó cũng ngăn các ký tự khác bên cạnh tên biến không được hiểu là một phần của tên. Nếu không có dấu ngoặc nhọn, PHP sẽ biết phải làm gì với "Your robot name would be {$firstName}Number5"? Nó sẽ thấy "$firstNameNumber5"và tìm kiếm một biến có tên $ FirstNameNumber5 thay vì chỉ đơn giản là $ FirstName.

Tôi không chắc chắn những gì bạn hỏi về ví dụ trước. Có phải __FILE__bạn đang bối rối? Đó là Hằng số ma thuật PHP được thay thế bằng đường dẫn đầy đủ đến tệp có bit mã.


Trước khi đóng cửa chỉ đơn giản cuối cùng : !Website::. Tại sao đại tràng đôi ở đó?
Hồi giáo Mayeenul

2
Việc ::phải làm với lập trình hướng đối tượng - trong trường hợp Website::getThemeOption, bạn đang gọi hàm getThemeOptionthuộc về lớp Website.
Pat J

2
Ngoài ra: {$var}giúp PHP phân biệt giữa một cái gì đó như {$complete_variable_name}{$prefix}_rest_of_name, ví dụ.
Pat J

Dấu hai chấm FIY được sử dụng để chỉ truy cập các phương thức và thuộc tính tĩnh hoặc bị ghi đè của một lớp, với các phương thức thông thường bạn sử dụng -> ví dụ $ myObject-> someMethod ();
ed-ta
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.