Ваша функция выходит на первой же итерации, если первый элемент не совпал - до нужного у неё дойти нет шансов.
Ну а сравнение прекрасно работает:
function getXmlProduct(string $product_code, SimpleXMLElement $xml): int
{
foreach ($xml->items->item as $item) {
if (
(string)$item->code === $product_code &&
(string)$item->stock === "В наявності"
) {
return (int)$item->priceRUAH;
}
}
return 0;
}
Если хотите, то можете и в стиле пятилетней давности функцию сделать:
function getXmlProduct($product_code, $xml)
{
foreach ($xml->items->item as $item) {
if ($item->code == $product_code && $item->stock == "В наявності") {
return (int)$item->priceRUAH;
}
}
return 0;
}