%s,%1 $ s等的含义是什么?[关闭]


14

从“问答环节”开始,我遇到了一些老问题,但我担心自己处于一种状况,即我仍然不了解它们的含义,也不知道为什么要使用它们。

  • %1$s -(找到加载小部件ID)
  • %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.net上找到PHP文档,并可以使用Google找到许多PHP初学者教程。
本·米勒

2
@BenMiller:请耐心等待。在toscho发表评论之前,我什至不知道问题的立场。戴夫的答案现在几乎很清楚。
Mayeenul Islam 2013年

@MayeenulIslam,我只是想解释一下为什么您在法典中找不到这样的解释。如果遇到不耐烦的事,我感到抱歉。
本·米勒

Answers:


11

这实际上实际上是一个一般的PHP编程问题,因此可能会被关闭。但是在那之前,让我们看看我是否能帮您解决其中的一些问题。

以%号开头的字符串为“ printf format”。例如,%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 2013年

2
::面向对象的编程有关 -在这种情况下Website::getThemeOption,您要调用getThemeOption属于该类的函数Website
Pat J

2
另外:例如,{$var}可以帮助PHP区分类似{$complete_variable_name}{$prefix}_rest_of_name
Pat J

FIY双冒号仅用于访问静态或重写的类的方法和类的属性,而常规方法则使用->例如$ myObject-> someMethod();。
ed-ta
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.