Start · Sprachen · PHP · Referenz · ocicollsize

ocicollsize

Funktion

Alias von <code>OCICollection::size()</code> — gibt die Anzahl der Elemente in einer Oracle-Collection zurück.

seit PHP 5.0.0 Kategorie: db

Signatur

ocicollsize(OCICollection $collection): int|false

Beschreibung

ocicollsize() ist ein prozeduraler Alias der Methode OCICollection::size() und gibt die Anzahl der Elemente zurück, die in der angegebenen Oracle-Collection gespeichert sind. Collections entsprechen Oracle-Datenbanktypen wie VARRAY oder TABLE OF.

Die Funktion eignet sich, um vor dem Iterieren oder Zugreifen auf einzelne Elemente einer Collection deren Größe zu prüfen, ähnlich wie count() bei PHP-Arrays. Sie gehört zur OCI8-Erweiterung und ermöglicht die prozedurale Schreibweise für Entwickler, die keine Objekt-Syntax bevorzugen.

Hinweis: Diese Funktion ist ein veralteter Alias. Es wird empfohlen, stattdessen die objektorientierte Methode OCICollection::size() zu verwenden, da prozedurale OCI-Aliase in zukünftigen PHP-Versionen entfernt werden könnten.

Parameter

Name Typ Default Beschreibung
$collection Pflicht OCICollection Ein OCICollection-Objekt, das zuvor mit oci_new_collection() erstellt oder aus einer Oracle-Abfrage abgerufen wurde.

Rückgabewert

Typ
int|false
Beschreibung
Gibt die Anzahl der Elemente in der Collection als int zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Größe einer Oracle-Collection ermitteln

<?php
$conn = oci_connect('benutzer', 'passwort', 'localhost/XE');

if (!$conn) {
    $err = oci_error();
    trigger_error('Verbindung fehlgeschlagen: ' . $err['message'], E_USER_ERROR);
}

// Collection vom Typ ODCIVARCHAR2LIST (integrierter Oracle-Typ) anlegen
$collection = oci_new_collection($conn, 'ODCIVARCHAR2LIST', 'SYS');
$collection->append('Eintrag 1');
$collection->append('Eintrag 2');
$collection->append('Eintrag 3');

$groesse = ocicollsize($collection);
echo 'Anzahl der Elemente: ' . $groesse . PHP_EOL;

$collection->free();
oci_close($conn);
Anzahl der Elemente: 3

Elemente iterieren mit Größenprüfung

<?php
$conn = oci_connect('benutzer', 'passwort', 'localhost/XE');

$collection = oci_new_collection($conn, 'ODCIVARCHAR2LIST', 'SYS');
$collection->append('Alpha');
$collection->append('Beta');
$collection->append('Gamma');

$groesse = ocicollsize($collection);

if ($groesse !== false && $groesse > 0) {
    for ($i = 0; $i < $groesse; $i++) {
        // OCI-Collections sind 1-basiert
        echo 'Element ' . ($i + 1) . ': ' . $collection->getElem($i + 1) . PHP_EOL;
    }
} else {
    echo 'Collection ist leer oder ein Fehler ist aufgetreten.';
}

$collection->free();
oci_close($conn);
Element 1: Alpha Element 2: Beta Element 3: Gamma

// Wichtig · Fallstricke

Veraltet: ocicollsize() ist ein prozeduraler Alias und sollte zugunsten der objektorientierten Methode OCICollection::size() vermieden werden. Die prozedurale OCI8-API wurde in PHP 8.0 teilweise bereinigt; prüfen Sie die Verfügbarkeit in Ihrer PHP-Version.

Beachten Sie, dass Oracle-Collections 1-basiert indiziert sind, d. h. das erste Element hat den Index 1, nicht 0. Dies unterscheidet sich vom üblichen PHP-Array-Verhalten und sollte beim Zugriff via getElem() berücksichtigt werden.