nur-sery/src/A.php

39 lines
1.3 KiB
PHP
Raw Normal View History

2024-05-19 11:19:00 +04:00
<?php
namespace nur\sery;
use Traversable;
/**
* Class A: gestion de tableaux ou d'instances de {@link IArrayWrapper}
*
* contrairement à {@link cl}, les méthodes de cette classes sont plutôt conçues
* pour modifier le tableau en place
*/
class A {
/**
* s'assurer que $array est un array non null. retourner true si $array n'a
* pas été modifié (s'il était déjà un array), false sinon.
*/
static final function ensure_array(&$array): bool {
if (is_array($array)) return true;
if ($array instanceof IArrayWrapper) $array = $array->wrappedArray();
if ($array === null || $array === false) $array = [];
2024-05-30 07:00:59 +04:00
elseif ($array instanceof Traversable) $array = cl::all($array);
2024-05-19 11:19:00 +04:00
else $array = [$array];
return false;
}
/**
* s'assurer que $array est un array s'il est non null. retourner true si
* $array n'a pas été modifié (s'il était déjà un array ou s'il valait null).
*/
static final function ensure_narray(&$array): bool {
if ($array instanceof IArrayWrapper) $array = $array->wrappedArray();
2024-05-30 07:00:59 +04:00
if ($array === null || is_array($array)) return true;
2024-05-19 11:19:00 +04:00
if ($array === false) $array = [];
2024-05-30 07:00:59 +04:00
elseif ($array instanceof Traversable) $array = cl::all($array);
2024-05-19 11:19:00 +04:00
else $array = [$array];
return false;
}
}