0

我正在使用drupal 6

假设我有

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

相反,它会将位于第 1 个位置的路径部分(在这种情况下,它将传递 'yo')传递给 callback_function 函数......

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

4

2 回答 2

1

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

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

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

会给你通过的论据。在这种情况下$args[0]将是数字 1。在 99% 的情况下,您不必担心它是数字还是字符串,因为如果您将其用作数字,php 会将其转换为数字,如果您将其用作string 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

于 2012-08-06T18:41:49.313 回答
0
  $items['path/yo'] = array(
    'page callback' => 'callback_function',
    'page arguments' => array("1"),
    'type' => MENU_CALLBACK,
  );

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

于 2012-08-06T20:44:22.917 回答