Fix misleading sizeof

An array of zval* is allocated, but sizeof(zval **) is used.
Makes no practical difference as sizeof(zval *) == sizeof(zval **).
Remove dead comparison (size_t < 0)
Remove extraneous NULL check of Z_ARRVAL_P()

Z_ARRVAL_P() is never NULL