在我的插件中,我定义了一个常量,如下所示:
define(\'DEFAULT_NUM\', 5);
我还定义了一个常量,表示要引用此数字的名称:
define(\'DEFAULT_NUM_NAME\', \'numitems\');
我的插件有一个使用以下值的短代码:
function do_something($atts) {
extract( shortcode_atts( array(
DEFAULT_NUM_NAME => DEFAULT_NUM
), $atts ) );
我这样做是为了在一个地方更改变量值,而不是对其进行硬编码:
function do_something($atts) {
extract( shortcode_atts( array(
\'numitems\' => 5
), $atts ) );
The
extract
函数将字符串“numitems”转换为一个名为
$numitems
. 因此,我的其余代码必须如下所示:
if ($numitems == 5) {
return \'blah blah\';
}
实际上,我是在硬编码变量的名称,因为我必须使用我定义的任何名称。我想检索变量的值,而不必使用它。
换句话说,我想利用常量名称来确定传递给插件的值,而不必使用变量。
这可能吗?还是我的方法错了?
(仅供参考,这是一个基于实际插件的测试用例。这些不是实际的变量名。)