No, you can't call a function to provide a default argument value. As the docs put it, "The default value must be a constant expression, not (for example) a variable, a class member or a function call."
I think an idomatic way to write the function you want would be with a default null value, and a docblock to explain the meaning of null, i.e.:
/** * @param ?string $at reference creation time in Y-m-d H:i:s format, or null for now. */ public function insert_user_to_user_reference( string $referrer_id, string $referee_id, ?string $at = null ) { if ($at === null) { $at = date('Y-m-d H:i:s'); } //some code here ... }