Через пару минут я понял, что у меня была ошибка: магическое число 2147483647
, это верхний предел для типа integer
в PHP / 32.Мне нужно управлять числом биггеров в моей функции:
public function albumExists($name) // e.g. 104112826372452
{
$albums = $this->getAlbums();
// If $name is int, search the key in $albums
if(is_int($name) && ($found = array_key_exists($id = intval($name), $albums)))
return ($found ? $id : false);
// Start looking for $name as string
foreach($album as $id => $a) if ($a->name == $name) return intval($id);
return false; // Found nothing
}
, чтобы дать возможность поиска как по id
, так и name
.Но intval()
всегда будет возвращать верхний предел.Как справиться с довольно большими числами вроде, скажем, 104112826372452
?Идеи?
РЕДАКТИРОВАТЬ : пример использования:
$album = $fb->createAlbum('Test Album'); // Will return album id
// The use albumExists to check if id exists
$photo1 = $fb->uploadPhoto('mypic1.png', null, $album);
$photo2 = $fb->uploadPhoto('mypic2.png', null, 'Test Album'); // find or create