Dokumentation
IPS_FindObjectIDByName
int IPS_FindObjectIDByName (string $ObjektName, int $ÜbergeordneteID)
Parameterliste
| ObjektName | Zu suchender ObjektName |
| ÜbergeordneteID | Objekt, in dessen direkten Unterobjekten gesucht werden soll |
Rückgabewert
ID des ersten gefundenen Objekts, andernfalls 1 (ungültige ID)
Beschreibung
Die Funktion sucht unter den direkten Unterobjekten des Objekts mit der ID ÜbergeordneteID nach einem Objekt mit dem Namen ObjektName und liefert dessen ID. Tiefer verschachtelte Objekte werden nicht durchsucht. Der Vergleich erfolgt exakt (Groß-/Kleinschreibung wird beachtet), der Objekttyp spielt keine Rolle. Als ÜbergeordneteID ist auch 0 (Wurzel) erlaubt.
Im Unterschied zu IPS_GetObjectIDByName schlägt die Funktion nicht fehl, wenn kein passendes Objekt existiert, sondern liefert die ungültige ID 1.
Wird kein Objekt gefunden, ist das Ergebnis 1 und nicht FALSE oder 0. Gültige Objekt-IDs sind immer größer oder gleich 10000, daher sollte das Ergebnis explizit mit 1 verglichen werden.
Da Namen nicht eindeutig sind, wird bei mehreren gleichnamigen Objekten die ID des ersten gefundenen Objekts geliefert. Für eine eindeutige Suche sollte IPS_FindObjectIDByIdent verwendet werden.
Ist ObjektName ein Leerstring, schlägt die Funktion mit "Name cannot be empty" fehl. Existiert das Objekt ÜbergeordneteID nicht, schlägt sie mit "Object #... does not exist" fehl.
Beispiel
$id = IPS_FindObjectIDByName("Temperatur", 12345);
if ($id === 1) {
echo "Kein Objekt mit dem Namen 'Temperatur' gefunden";
} else {
echo "Gefunden: #" . $id;
}