您能解释一下这段代码中
$arg
的含义吗? (它来自 Drupal 模块)
function node_add_review_load($arg) {
global $user;
$add_review = FALSE;
$current_node = node_load($arg);
$type =$current_node->type;
$axes_count = db_result(db_query("SELECT COUNT(*) FROM {nodereview_axes} WHERE node_type='%s'", $type));
if (variable_get('nodereview_use_' . $type, 0) && $axes_count) {
$add_review = db_result(db_query("SELECT n.nid FROM {node} n INNER JOIN {nodereview} nr ON n.nid=nr.nid WHERE uid=%d AND reviewed_nid=%d", $user->uid, $arg));
}
return $add_review ? FALSE : $arg;
}
http://nl.php.net/manual/en/functions.arguments.php
当程序员使用node_add_review_load()时,他可以传递可以在函数中使用的参数。
如果参数 $arg 不同,函数将返回另一个值。
所以程序员可以这样做:
node_add_review_load("my argument");
//and the php automatically does:
$arg = "my argument";
//before executing the rest of the function.
一般来说,
arg
是“argument”的缩写,如“函数的参数”。这是一个通用的名称,因此毫无帮助。如果您只是给出方法签名 (function node_add_review_load($arg)
),我们将不知道。
幸运的是,有了完整的函数体,我们就可以推断出它的用途:它就是node_id。此函数加载由
$arg
标识的节点,然后尝试查找已加载的相应行,然后代码尝试查找当前用户的相应评论。如果成功,该函数将返回相同的 node_id
(即 $arg
);否则将返回FALSE。
这是一个争论。
例如,
// function
function sum($arg1, $arg2)
{
return $arg1+$arg2;
}
// prints 4
echo sum(2,2);
您不必将其命名为 $arg 才有效。例如,
function sum($sillyWilly, $foxyFox)
{
return $sillyWilly+$foxyFox;
}
而且效果是一样的。您应该为参数指定有用的名称。在这种情况下,参数 $arg 是不好的编程习惯,因为像您这样的人会看到它并对其确切含义感到困惑。因此,在创建函数时,请务必使用有用的名称,以便您记住。