2016-05-27 5 views
1

Пожалуйста, помогите мне и исправьте, где я ошибаюсь. Ниже мой код, когда часовой пояс в Великобритании, он напечатает еще часть, почему действительно не понимаю.if-else вернуть неправильное значение в laravel

$user = User::find(BaseHelper::getCurrentUser()); 
    if($user->timezone ='UK') 
    { 
     $date = Carbon::createFromFormat('Y-m-d H:i:s', $this->updated, 'GMT'); 
     $date->timezone("Europe/London"); 
    } else { 
     $date = Carbon::parse($this->updated)->format('d/m/Y h:i A'); 
    } 

ответ

1

Вам необходимо изменить это if($user->timezone ='UK') на это if($user->timezone == "UK"). Это проверит, $user->timezone равно UK.


Если вы пытались установить значение $user->timezone для UK вам нужно использовать =, в противном случае вы должны использовать == или ===


$a = $b

  • Набор $a до $b

$a == $b

  • Равные верно: если $a равно $b, после того типа жонглирования.

$a === $b

  • Идентичные верно: если $a равно $b, и они того же типа.
+0

Я изменил это, тогда он принимает еще часть – user2110253

+0

Что-то странное происходит, не знаю, почему причина, когда я использую '=', тогда в обоих условиях она принимает, если часть и когда я использую '==', то для обоих условий он принимает еще часть – user2110253

+0

, вы можете сбросить ($ user-> часовой пояс) и посмотреть, равно ли значение 'часовой пояс'' UK' –

6

Вы используете if($user->timezone ='UK') равный здесь, когда вы должны использовать ==

= для задания и == для сравнения значения.

if($user->timezone ='UK') 

не вернет true, потому что значение успешно сохраняется в переменной.

Смежные вопросы