In many places in the PHP SDK max_retries is compared using the <= operator, resulting in a max_retries of 0 meaning "retry once". I found this comparison in 5+ source files, here is the example I hit:
# (Line 948 sdk.class.php)
if ($this->redirects <= $this->max_retries)
{
// Exponential backoff
$delay = (integer) (pow(4, $this->redirects) * 100000);
usleep($delay);
$this->redirects++;
$data = $this->authenticate($operation, $original_payload);
}