【问题标题】:Why code with === does not work whereas works fine with ==? [duplicate]为什么带有 === 的代码不起作用,而带有 == 的代码却可以正常工作? [复制]
【发布时间】:2016-02-09 10:37:09
【问题描述】:

在 laravel 中,我正在阅读任务列表的中级教程并遇到了一个问题。如果你去这个链接:https://laravel.com/docs/5.2/quickstart-intermediate#deleting-tasks,在标题“授权”下,你会发现下面提到的代码:

public function destroy(User $user, Task $task)
{
    return $user->id === $task->user_id;
}

这里的destroy 方法在它包含return $user->id == $task->user_id; 时工作正常,但在它包含return $user->id === $task->user_id; 时不起作用。为什么?

这两个代码的区别在于=====

【问题讨论】:

标签: laravel


【解决方案1】:

希望对您有所帮助。

在 PHP 中比较值是否相等时,您可以使用 == 运算符或 === 运算符。

两者有什么区别?嗯,

这很简单。

== 运算符只是检查左右值是否相等。但是,

=== 运算符(注意额外的=)实际上检查左右值是否相等,并检查它们是否属于相同的变量类型(比如它们是否都是布尔值,整数等)。

【讨论】:

  • 是的,完美。谢谢。我使用 var_dump() 检查了两端,发现其中一个类型为“int”,另一个类型为“string”,这限制了 === 为真。
  • =赋值,==两个值相等,===两个值相等且类型相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多