strict comparison fails laravel blade, Some silly mistake by me

Viewed 92

I am trying to do a strict comparison regading "male" "female" in radio-box. I know I am certainly doing some silly mistake, but have gone blind regarding. I have below code where i need checked="ckecked" in radiobox.

<p>
    <label for="gender">Gender</label><br>
    <label for="mail">Male</label>
    <input class="w3-radio" type="radio" name="gender" {{ ($a['gender'] ?? '' === "male")? "checked" : "" }} value="male"/>
    @php
      if ($a['gender'] ?? '' === 'female') {
        echo "true";
      }
      else {
        echo "false";
      }
    @endphp
    <label for="female">Female</label>
    <input class="w3-radio" type="radio" name="gender" {{ ($a['gender'] ?? '' === "female")? "checked" : "" }} value="female"/>
  </p>

Whatever may be it this always ckecks the "female" radiobox. Even

@php
      if ($a['gender'] ?? '' === 'female') {
        echo "true";
      }
      else {
        echo "false";
      }
    @endphp

Always returns true. Help needed. Thanks in advance

Amod Karmarkar

2 Answers

don't worry this is very easy, you can do it with ignoring else case by use

{{isset($a['gender']) && $a['gender'] !="male"?:"checked" }}

to checked if current gender is Male

{{isset($a['gender']) && $a['gender'] !="female"?:"checked"}}

to checked if current gender is Female

This should give you a strict comparison

$a["gender"] = "female"; //assuming that was the array value
echo ($a['gender'] === "female")? "true" : "false"; //this returns true
echo ($a['gender']=== "male")? "true" : "false"; //this returns false
Related