Check if null and empty string in Laravel view

Stefan Bogdanescu

Founder & Senior Architect · 2026-06-29

Laravel Company

Title: Distinguishing Null Values and Empty Strings in Laravel Views

Introduction:
In Laravel, often we deal with different values such as null or empty strings in our views. While handling them may seem trivial, it's crucial to know the subtle differences between these two conditions to avoid potential bugs or logical errors. In this article, we will explore how to distinguish null and empty string in Laravel views by discussing their nature, how to check for each condition, and best practices for dealing with nullable values.

Null and Empty Strings: Distinguishing Their Nature
A null value represents the absence of any defined value or object. It signifies that there's no data present for a variable, property, or field. This is often represented by null in PHP when a variable has not been assigned a specific value. An empty string, on the other hand, contains characters but has no meaningful content - essentially, it's a string of zero length.

Checking for Null Values in Laravel Views
To check if a variable is null in your Blade view, you can use Laravel's "null safe" operators or the "is_null()" function. Here are a few examples:

  1. Using Laravel's Null Safe Operator: The null safe operator handles null values by returning false instead of triggering an error. In your blade file, you can write code like this:
blade
@if ($str->a ?? false) // if the $str->a is not null...
    ...
@endif
  1. Using Laravel's "is_null()" Function: The "is_null()" function checks if a variable equals null. This method can be used in your view like this:
blade
@if (is_null($str->a)) // if the $str->a is null...
    ...
@endif

Checking for Empty Strings in Laravel Views
In Laravel, you can use several approaches to check if a string is empty. Here are some examples:

  1. Using The String Length Operator: This approach involves checking the length of your string and verifying that it's zero using the "empty()" function in PHP. In Blade, you'll write code like this:
blade
@if (strlen($str->a) === 0 && empty($str->a)) // if the $str->a is a zero-length string...
    ...
@endif
  1. Using Laravel's "empty()" Function: The empty function in PHP returns true for an empty value of any type, whether it is null or an empty string. You can use this function in your view as shown below:
blade
@if (empty($str->a)) // if the $str->a is an empty string...
    ...
@endif
  1. Using Laravel's "str_is()" Function: The "str_is()" function provides a more concise way to check for specific types of strings, including an empty string. Here's how you can use it in your view:
blade
@if (str_is('empty', $str->a)) // if the $str->a is an empty string...
    ...
@endif

Best Practices for Handling Null and Empty Strings in Laravel Views

  1. Use consistent naming conventions for your variables to avoid confusion when checking their values. Naming them with "is_" or "has_" prefixes can help indicate if you're expecting a specific type (e.g., $isNull, $emptyString).
  2. Always check null and empty string conditions separately. Avoid using "null coalescing" operator (??) to prevent the situation where your variable is not set, but it contains an empty string.
  3. If you need to handle multiple types of null or empty values simultaneously, consider using the "or" condition in your if statement:
blade
@if ($str->a == null || strlen($str->a) === 0 && empty($str->a)) // if $str->a is null or an empty string...
    ...
@endif
  1. Remember to handle both null and empty strings separately for each scenario, as they differ in meaning and should be treated accordingly.
  2. Always check the context of your application before writing these conditions. Different scenarios might require different approaches, so it's essential to tailor your logic to fit your application's specific needs.

Conclusion:
In Laravel, checking for null values and empty strings in views can be quite tricky if we don't pay attention to their subtle differences. By understanding the nature of these conditions and following best practices when writing our code, we can handle them effectively in a Laravel application.