Dokumentation
IPS_FindObjectIDByIdent
int IPS_FindObjectIDByIdent (string $ObjektIdent, int $ÜbergeordneteID)
Parameterliste
| ObjektIdent | Zu suchender ObjektIdentifikator |
| ÜbergeordneteID | Objekt, in dessen direkten Unterobjekten gesucht werden soll |
Rückgabewert
ID des gefundenen Objekts, andernfalls 1 (ungültige ID)
Beschreibung
Die Funktion sucht unter den direkten Unterobjekten des Objekts mit der ID ÜbergeordneteID nach dem Objekt mit dem Identifikator ObjektIdent und liefert dessen ID. Tiefer verschachtelte Objekte werden nicht durchsucht. Der Vergleich erfolgt exakt (Groß-/Kleinschreibung wird beachtet). Als ÜbergeordneteID ist auch 0 (Wurzel) erlaubt.
Im Unterschied zu IPS_GetObjectIDByIdent schlägt die Funktion nicht fehl, wenn kein passendes Objekt existiert, sondern liefert die ungültige ID 1. Sie eignet sich daher für Prüfungen, ob ein Objekt mit einem bestimmten Ident bereits vorhanden ist, ohne dass eine Warnung unterdrückt werden muss.
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.
Ist ObjektIdent ein Leerstring, schlägt die Funktion mit "Ident cannot be empty" fehl. Existiert das Objekt ÜbergeordneteID nicht, schlägt sie mit "Object #... does not exist" fehl.
Siehe auch: IPS_FindObjectIDByName, IPS_SetIdent
Beispiel
$id = IPS_FindObjectIDByIdent("Temperature", 12345);
if ($id === 1) {
echo "Kein Objekt mit dem Ident 'Temperature' gefunden";
} else {
echo "Gefunden: #" . $id;
}