搜索

首页  >  问答  >  正文

Laravel Blade:比较字符串与对象

<p>在将对象与 Laravel 刀片文件中的字符串进行比较时,我遇到了一个奇怪的问题。</p> <p>我有一个变量,可以是字符串(“N/A”)或对象,具体取决于数据库查询的结果,并且我有以下条件检查:</p> <pre class="brush:php;toolbar:false;">@if ($a_string_name == 'N/A')</pre> <p>如果返回一个对象,则对于大多数用户来说,此条件将失败并继续执行 else 语句。</p> <p>但对于一种特定情况(我没有足够的信息来说明如何重现此情况),此条件会引发错误:</p> <pre class="brush:php;toolbar:false;">Method Illuminate\Support\Collection::__toString() must return a string value</pre> <p>我无法弄清楚出了什么问题,或者这是否是 laravel/浏览器特定的问题。</p> <p>PHP v7.4.22、laravel v6.0</p>
P粉797855790P粉797855790454 天前555

全部回复(1)我来回复

  • P粉407936281

    P粉4079362812023-09-02 10:10:56

    根据您上面的问题,我认为您想检查给定值是否设置了变量。在您的情况下,请尝试使用@if(isset($a_string_name))

    我们通常使用两种 PHP 方法来检查变量。

    如何检查 PHP 中是否定义了变量? isset() 函数检查变量是否已设置,这意味着该变量必须声明且不为 NULL。如果变量存在且不为 NULL,则该函数返回 true,否则返回 false。

    如何检查给定变量是否为空? empty() 函数检查变量是否为空。如果变量存在且不为空,则该函数返回 false,否则返回 true。以下值计算为空:0。

    希望这对您有所帮助。

    回复
    0
  • 取消回复