在 drupal 菜单中将整数作为参数传递



我正在使用drupal 6

假设我有

  $items['path/yo'] = array(
    'page callback' => 'callback_function',
    'page arguments' => array(1),
    'type' => MENU_CALLBACK,
  );

相反,它将传入位于第 1 个位置的路径部分(在本例中,它将传递"yo")到 callback_function 函数中......

但是,如果我实际上试图将整数 1 传递到函数中怎么办?如果不先将其转换为字符串然后重新转换为整数,我将如何做到这一点......

PHP 类型转换

做得很好,你必须小心类型转换,尤其是 0 和 1,因为它们可以是字符串、数字或布尔值。

可以在条件中使用类型检查(例如 === !==)。 在您当前的示例中,它首先不是一个字符串,而是一个数字。 它会将 1 传递到callback_function。

function callback_function($args) {
print_r($args);
}

会给你通过的论点。 在这种情况下,$args[0]将是数字 1。 在 99% 的情况下,您不必担心它是数字还是字符串,因为如果您将其用作数字,php 会将其转换为数字,如果您将其用作字符串,php 会将其视为字符串。 请注意条件语句,并确保阅读以下内容:http://php.net/manual/en/language.operators.comparison.php

例如,要查看它是否是数字 1:

if(1 === $args[0]) echo "Numbah one!";

如果它是数字类型和数字 1,则只会打印"Numbah one!"。 如果你喜欢,你可以用它打字

(int)$args[0];
(string)$args[0];
(boolean)$args[0];

分别。

您也可以查看这篇文章:http://drupal.org/node/1473458

  $items['path/yo'] = array(
    'page callback' => 'callback_function',
    'page arguments' => array("1"),
    'type' => MENU_CALLBACK,
  );

也见沃尔夫的回答。如果输入 (int) 1,它将是 arg(1)。按原样输入要传递给页面回调的字符串。

相关内容

最新更新