Передача целых чисел в качестве параметра в меню drupal

Я использую Drupal 6

Предположим, у меня есть

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

Вместо этого он передаст часть пути, которая находится в 1-й позиции (в этом случае он передаст 'yo') в функцию callback_function...

Но что, если я на самом деле пытаюсь передать целое число 1 в функцию? Как бы я это сделал, не приведя его сначала как строку, а затем преобразовав в целое число...

2 ответа

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

Смотрите также ответ Вулфа. Если вы введете (int) 1, это будет arg(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. Вы можете ввести его, если хотите, с помощью

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

соответственно.

Вы также можете проверить эту статью: http://drupal.org/node/1473458

Другие вопросы по тегам