我正在使用drupal 6
假设我有
$items['path/yo'] = array(
'page callback' => 'callback_function',
'page arguments' => array(1),
'type' => MENU_CALLBACK,
);
它会传入第1个位置的路径部分(在这种情况下它会传递'yo')到callback_function函数中...
但是如果我实际上正在尝试将整数1传递给函数呢?如果不首先将其作为字符串转换然后重新转换为整数...
,我将如何做到这一点答案 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)。输入要按原样传递给页面回调的字符串。