PHP version 7.3 Zencart 1.56c

Getting the following PHP warning:
--> PHP Warning: sizeof(): Parameter must be an array or an object that implements Countable in /var/www/vhosts/domain/httpdocs/includes/modules/pages/account_notifications/header_php.php on line 48.

Line 48 } elseif (sizeof($products) > 0)

PHP Code:
<?php/** * Header code file for the Account Notifications page * * @package page * @copyright Copyright 2003-2019 Zen Cart Development Team * @copyright Portions Copyright 2003 osCommerce * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0 * @version $Id: mc12345678 2019 Apr 30 Modified in v1.5.6b $ */// This should be first line of the script:$zco_notifier->notify('NOTIFY_HEADER_START_ACCOUNT_NOTIFICATION');
if (!zen_is_logged_in()) {  $_SESSION['navigation']->set_snapshot();  zen_redirect(zen_href_link(FILENAME_LOGIN, '', 'SSL'));}
require(DIR_WS_MODULES . zen_get_module_directory('require_languages.php'));
$global_query = "SELECT global_product_notifications                 FROM   " . TABLE_CUSTOMERS_INFO . "                 WHERE  customers_info_id = :customersID";
$global_query = $db->bindVars($global_query, ':customersID',$_SESSION['customer_id'], 'integer');$global = $db->Execute($global_query);
if (isset($_POST['action']) && ($_POST['action'] == 'process')) {  if (isset($_POST['product_global']) && is_numeric($_POST['product_global'])) {    $product_global = zen_db_prepare_input($_POST['product_global']);  } else {    $product_global = '0';  }
  (array)$products = $_POST['notify'];
  if ($product_global != $global->fields['global_product_notifications']) {    $product_global = (($global->fields['global_product_notifications'] == '1') ? '0' : '1');
    $sql = "UPDATE " . TABLE_CUSTOMERS_INFO . "            SET    global_product_notifications = :globalProductNotifications            WHERE  customers_info_id = :customersID";
    $sql = $db->bindVars($sql, ':globalProductNotifications',$product_global, 'integer');    $sql = $db->bindVars($sql, ':customersID',$_SESSION['customer_id'], 'integer');    $db->Execute($sql);
  } elseif (sizeof($products) > 0) {    $products_parsed = array();
    foreach ($products as $parse_entry) {      if (is_numeric($parse_entry)) {        $products_parsed[] = $parse_entry;      }    }
    if (sizeof($products_parsed) > 0) {      $check_query = "SELECT count(*) AS total                      FROM   " . TABLE_PRODUCTS_NOTIFICATIONS . "                      WHERE  customers_id = :customersID                      AND    products_id NOT IN (:productsParsed)";
      $check_query = $db->bindVars($check_query, ':customersID',$_SESSION['customer_id'], 'integer');      $check_query = $db->bindVars($check_query, ':productsParsed',implode(',', $products_parsed), 'csv');      $check = $db->Execute($check_query);
      if ($check->fields['total'] > 0) {        $sql = "DELETE FROM " . TABLE_PRODUCTS_NOTIFICATIONS . "                WHERE       customers_id = :customersID                AND         products_id NOT IN (:productsParsed)";
        $sql = $db->bindVars($sql, ':customersID',$_SESSION['customer_id'], 'integer');        $sql = $db->bindVars($sql, ':productsParsed',implode(',', $products_parsed), 'csv');        $db->Execute($sql);      }    }  } else {    $check_query = "SELECT count(*) AS total                    FROM   " . TABLE_PRODUCTS_NOTIFICATIONS . "                    WHERE  customers_id = :customersID";
    $check_query = $db->bindVars($check_query, ':customersID',$_SESSION['customer_id'], 'integer');    $check = $db->Execute($check_query);
    if ($check->fields['total'] > 0) {      $sql = "DELETE FROM " . TABLE_PRODUCTS_NOTIFICATIONS . "              WHERE       customers_id = :customersID";
      $sql = $db->bindVars($sql, ':customersID',$_SESSION['customer_id'], 'integer');      $db->Execute($sql);    }  }
  $messageStack->add_session('account', SUCCESS_NOTIFICATIONS_UPDATED, 'success');
  zen_redirect(zen_href_link(FILENAME_ACCOUNT, '', 'SSL'));}
/*$products_check_query = "SELECT count(*) AS total                         FROM   " . TABLE_PRODUCTS_NOTIFICATIONS . "                         WHERE  customers_id = :customersID";
$products_check_query = $db->bindVars($products_check_query, ':customersID',$_SESSION['customer_id'], 'integer');$products_check = $db->Execute($products_check_query);if ($products_check->fields['total'] > 0) $flag_products_check = true;*/
$counter = 0;$notificationsArray = array();$products_query = "SELECT pd.products_id, pd.products_name                   FROM   " . TABLE_PRODUCTS_DESCRIPTION . " pd,                          " . TABLE_PRODUCTS_NOTIFICATIONS . " pn                   WHERE  pn.customers_id = :customersID                   AND    pn.products_id = pd.products_id                   AND    pd.language_id = :languagesID                   ORDER BY pd.products_name";
$products_query = $db->bindVars($products_query, ':customersID',$_SESSION['customer_id'], 'integer');$products_query = $db->bindVars($products_query, ':languagesID',$_SESSION['languages_id'], 'integer');$products = $db->Execute($products_query);while (!$products->EOF) {  $notificationsArray[] = array('counter'=>$counter,                                'products_id'=>$products->fields['products_id'],                                'products_name'=>$products->fields['products_name']);  $counter++;  $products->MoveNext();}$flag_products_check = sizeof($notificationsArray);

$breadcrumb->add(NAVBAR_TITLE_1, zen_href_link(FILENAME_ACCOUNT, '', 'SSL'));$breadcrumb->add(NAVBAR_TITLE_2);
// This should be last line of the script:$zco_notifier->notify('NOTIFY_HEADER_END_ACCOUNT_NOTIFICATION');?>
Can anyone help thank you