PHP: 如果条件成立则将其赋值给变量并调用字符串

3
这可能是一个简单而愚蠢的问题,但我正在学习php,希望得到您的帮助。我试图通过分配条件语句来获取变量。
$gender = $curauth->gender; // getting from wordpress user profile.

if($gender === 'Male') {
    echo 'his';
} else {
    echo 'her';
}

因此,我想做的是检查用户是否为男性,如果是,则在某些描述中使用他的,如果是女性,则使用她的。类似以下内容:

echo 'jatin soni doesn't have set this option yet. His option will be deactivated soon.';

这里将使用上述条件代码来设置His

2
我不确定你的问题是什么。 - andrewsi
这是在函数内部吗?否则我看不出你为什么要使用 return - PeeHaa
好的,我想用变量在回显“....这里....”中设置他或她。因此,如果用户在其个人资料中设置为男性,则变量将添加“他的(HIS)”,如果用户在个人资料中设置为女性,则变量将添加“她的(HER)”到回显中。因此,我希望有一个变量,可以将其添加到字符串之间以呈现“他”或“她”。 - Code Lover
抱歉!那是我的错误。让我改一下代码。我试图让它能够运行,所以忘记删除了“return”。 - Code Lover
1
@PeeHaa return 可以从函数外部调用,以停止脚本的执行。请参阅 http://php.net/manual/zh/function.return.php - Susam Pal
显示剩余4条评论
4个回答

5
你可以直接使用 echo 输出它:
echo 'jatin soni doesn\'t have set this option yet. ', 
     ($gender === 'Male' ? 'His' : 'Her'), 
     ' option will be deactivated soon.';

如果您需要多次使用或出于可读性的原因,应将其分配给一个变量:
# Default Female:
$gender = empty($curauth->gender) ? 'Female' : $curauth->gender;

$hisHer = $gender === 'Male' ? 'His' : 'Her';
echo 'jatin soni doesn\'t have set this option yet. ', 
     $hisHer, 
     ' option will be deactivated soon.';

下一步可能是在双引号字符串文档中进行变量替换,或者使用printf文档函数进行格式化输出。

在编程中,你应该转义 "doesn't" 中的 ' - gen_Eric
如果用户没有设置选项,是否可以添加默认状态? - Code Lover
@pixelngrain:我为您添加了一个示例。它再次使用 is ? then-a : else-b; 三元运算符,这次是用于默认性别。 - hakre
是的,我检查了,它工作得很好。唯一的问题是,在默认状态下,它只会给出His或Her,但不会像his / her那样给出他/她表示尚未设置。但我发现你的代码非常简短易用。所以我打算使用它。非常感谢.. :) - Code Lover

4
这个怎么样?
<?php
$pronoun = $curauth->gender == 'Male' ? 'his' : 'her';
echo "Jatin Soni doesn't have set this option yet. " .
     ucfirst($pronoun) . " option will be deactivated.\n"
?>

3
最常见的做法是将动态部分赋值给一个变量,然后在输出中使用该变量:
$gender = $curauth->gender; // getting from wordpress user profile.

if ($gender === 'Male') {
    $hisHer = 'His';
} else {
    $hisHer = 'Her';
}

echo "jatin soni doesn't have set this option yet. $hisHer option will be deactivated soon.";

我发现你的答案很有前途,只需要再尝试几个东西,然后选择最终的一个.. 非常感谢。 - Code Lover
我已经投票支持你的回答。你的代码也很有前途,只是 hakra 的代码更加紧凑易用。非常感谢。 - Code Lover

1

如果你想要一个变量,你可以在一行代码中实现:

$gender = $curauth->gender; // getting from wordpress user profile.
$their = $gender == 'Male' ? $gender = 'His' : $gender = 'Her';
echo "$username doesn't have set this option yet. $their option will be deactivated soon.";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接