diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 6fae299..13f7107 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -733,7 +733,7 @@ function drupal_bootstrap($phase = NULL) {
     $boot_level = $phase;
   }
 
-  return \Drupal::getContainer() ? DRUPAL_BOOTSTRAP_CODE : DRUPAL_BOOTSTRAP_CONFIGURATION;
+  return \Drupal::hasContainer() ? DRUPAL_BOOTSTRAP_CODE : DRUPAL_BOOTSTRAP_CONFIGURATION;
 }
 
 /**
diff --git a/core/lib/Drupal.php b/core/lib/Drupal.php
index 34c641c..c3f2c90 100644
--- a/core/lib/Drupal.php
+++ b/core/lib/Drupal.php
@@ -124,6 +124,16 @@ public static function getContainer() {
   }
 
   /**
+   * Returns TRUE if the container has been initialized, FALSE otherwise.
+   *
+   * @return bool
+   */
+  public static function hasContainer() {
+    return static::$container !== NULL;
+  }
+
+
+  /**
    * Retrieves a service from the container.
    *
    * Use this method if the desired service is not one of those with a dedicated
@@ -149,7 +159,8 @@ public static function service($id) {
    *   TRUE if the specified service exists, FALSE otherwise.
    */
   public static function hasService($id) {
-    return static::$container && static::$container->has($id);
+    // Check hasContainer() first in order to always return a Boolean.
+    return static::hasContainer() && static::getContainer()->has($id);
   }
 
   /**
@@ -168,7 +179,8 @@ public static function root() {
    *   TRUE if there is a currently active request object, FALSE otherwise.
    */
   public static function hasRequest() {
-    return static::$container && static::$container->has('request_stack') && static::$container->get('request_stack')->getCurrentRequest() !== NULL;
+    // Check hasContainer() first in order to always return a Boolean.
+    return static::hasContainer() && static::getContainer()->has('request_stack') && static::getContainer()->get('request_stack')->getCurrentRequest() !== NULL;
   }
 
   /**
