如果变量等于字母或单词


if a variable equals a letter or word

认为我想做的事情很明显。如果性别变量为 M,则显示男性图像。我已经尝试了一些方法,例如删除 =,但我没有任何成功。

我完全错了吗?

if ($gender == M){
<img src='images/male.png' width='45px' height'45px'>
}else{
($gender == F){
 <img src='images/female.png' width='45px' height'45px'>
}else{
($gender == HIDE){
<img src='images/uni.png' width='45px' height'45px'>
}

除非这些是常量,否则您需要将字符串括在引号中:

if($gender == 'M') {
?>
<img src="images/male.png" width="45" height="45" />
<?php
} else {

另外,请注意(您的代码给出了语法错误)如何混合 html 和 php。你应该使用 CSS 进行样式设置,而不是内联属性(已弃用)

除非你为 MFHIDE 设置了 php 常量定义,否则你需要将它们变成字符串。

常量:http://php.net/manual/en/function.define.php

还要记住,php 中没有枚举。

你也可以尝试一个开关语句,比如:

switch(strtoupper($gender))
{
    case 'M': $gender_img = 'male'; break;
    case 'F': $gender_img = 'female'; break;
    case 'HIDE': $gender_img = 'uni'; break;
    default: $gender_img = 'uni'; break;
}
echo '<img src="images/'.$gender_img.'.png" width="45px" height="45px">';

if ($gender === 'M'){

// or to make sure $gender is uppercase:
if (strtoupper($gender) === 'M'){
...
}
elseif { ...

而且,你的第一个"else"应该是一个elseif

我会内联做(像老板一样)

<img src="imgs/<?=($gender=="m"?"male.jpg":($gender=="f"?"female.jpg":"uni.jpg"))?>" />