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

时间:2012-08-06 18:26:59

标签: drupal drupal-6 drupal-routes

我正在使用drupal 6

假设我有

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

它会传入第1个位置的路径部分(在这种情况下它会传递'yo')到callback_function函数中...

但是如果我实际上正在尝试将整数1传递给函数呢?如果不首先将其作为字符串转换然后重新转换为整数...

,我将如何做到这一点

2 个答案:

答案 0 :(得分: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!";

只打印“Numbah one!”如果它是一个数字类型和数字1.如果您喜欢

,可以对它进行类型转换
(int)$args[0];
(string)$args[0];
(boolean)$args[0];

分别

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

答案 1 :(得分:1)

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

请参阅沃尔夫的回答。如果输入(int)1,则为arg(1)。输入要按原样传递给页面回调的字符串。