I am trying to read some php code, but can't understand how the variable $predicate here can be used:
private function getRelatedItems() {
$predicate = Zotero_Relations::$relatedItemPredicate;
$relations = $this->getRelations();
if (empty($relations->$predicate)) {
return [];
}
$relatedItemURIs = is_string($relations->$predicate)
? [$relations->$predicate]
: $relations->$predicate;
// Pull out object values from related-item relations, turn into items, and pull out keys
$keys = [];
foreach ($relatedItemURIs as $relatedItemURI) {
$item = Zotero_URI::getURIItem($relatedItemURI);
if ($item) {
$keys[] = $item->key;
}
}
return $keys;
}
As far as I can see $predicate is assigned a value that is never used. But I guess I am misunderstanding the scope somehow, or?