errors isn't a function, so you can't put the parens after it. Also, the vb code uses empty() instead of !isset() (but I can't remember offhand what the difference is if any - probably either will work). Oh, and in the vb code it looks like they call pre_save() before checking the errors.
Anyway, in the vb code they use:
Code:
$pmdm->pre_save();
if (empty($pmdm->errors))
{
$pmdm->save();
}