Page MenuHomeDevCentral

TraversableUtilities.php
No OneTemporary

TraversableUtilities.php

<?php
declare(strict_types=1);
namespace Keruald\OmniTools\Collections;
use Countable;
use ResourceBundle;
use SimpleXMLElement;
use TypeError;
class TraversableUtilities {
public static function count ($countable) : int {
if (self::isCountable($countable)) {
return count($countable);
}
if ($countable === null || $countable === false) {
return 0;
}
throw new TypeError;
}
public static function isCountable ($countable) : bool {
if (function_exists('is_countable')) {
// PHP 7.3 has is_countable
return is_countable($countable);
}
// https://github.com/Ayesh/is_countable-polyfill/blob/master/src/is_countable.php
return is_array($countable)
|| $countable instanceof Countable
|| $countable instanceof SimpleXMLElement
|| $countable instanceof ResourceBundle;
}
}

File Metadata

Mime Type
text/x-php
Expires
Fri, Nov 21, 16:57 (11 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3148507
Default Alt Text
TraversableUtilities.php (956 B)

Event Timeline