Php使用函数将数字添加到外部变量 选择 人类

Php使用函数将数字添加到外部变量 选择 人类,php,function,variables,global,Php,Function,Variables,Global,试图制作一个dnd字符表,我希望能够选择人类,并让它向从“强度”中获得的变量中添加一个设定的数量。这些变量将在之前预先确定,并且与每个选择框选项不同。查看后,您应该做的是将$strength传递给您的种族()函数,并返回该函数,并添加一定的强度 <form method="post"> <select name="racebox"> <option>select</option> <option>

试图制作一个dnd字符表,我希望能够选择人类,并让它向从“强度”中获得的变量中添加一个设定的数量。这些变量将在之前预先确定,并且与每个选择框选项不同。

查看后,您应该做的是将
$strength
传递给您的
种族()
函数,并返回该函数,并添加一定的强度

<form method="post">
    <select name="racebox">
        <option>select</option>
        <option>human</option>
    </select>
    <input type="textbox" name="ability" value= "">
    <input type="textbox" name="strength" value= "">
    <input type="submit" name="submit" value="submit">
</form>
<?php
$ability=$_POST['ability'];
$strength=$_POST['strength'];
$racepick=$_POST['racebox'];

function race($racepick){
    if ($racepick === "human"):
        $strength +1;
    endif;

}

function modifier($num){
$modifier= floor($num/2-5);
if ($modifier >= 0):
    echo " ", "+","$modifier <br>";
elseif ($modifier < 0):
    echo " ", $modifier, "<br>";
endif;
}

modifier($ability);
modifier($strength);

?>
补充资料 函数的使用通常是为了使程序员能够重用代码的某些部分。只有当您不打算在其他脚本中再次使用此代码时,才可以使用函数。我建议您将函数全部删除,只需执行以下操作:

$ability = $_POST['ability'];
$strength = $_POST['strength'];
$racepick = $_POST['racebox'];

$strength = race($racepick, $strength) {
    switch ($racepick) {
        case 'human':
            $strength = $strenght + 1;
            break;
        case 'otherrace':
            $strength = $strength + 5;
            break;
    }
    return $strength;
}

不是有效类型的
type=“textbox”
<代码>文本是否
修饰符
函数不返回值,只在屏幕上回显该值,因此您将无法在其他任何地方使用该值。@Fred ii-谢谢您,Fred,我已经解决了这个问题。@RamRaider谢谢你的帮助。我会尝试一下@PeterNote:这个答案没有列出类型,应该包含在答案中。另外,他的代码将输出未定义的索引通知,因为他在同一个文件中同时使用表单和php。这只是给未来访客的一张便条。
$ability = $_POST['ability'];
$strength = $_POST['strength'];
$racepick = $_POST['racebox'];


switch ($racepick) {
    case 'human':
        $strength = $strenght + 1;
        break;
    case 'otherrace':
        $strength = $strength + 5;
        break;
}