Stored Procedure Function Oracle PLSQL

SQL>
SQL>
SQL> -- A function block.
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
  2     temp  NUMBER;
  3
  4  FUNCTION iifn(boolean_expression IN BOOLEAN,
  5                true_number IN NUMBER,
  6                false_number IN NUMBER)
  7  RETURN NUMBER IS
  8  BEGIN
  9       IF boolean_expression THEN
 10         RETURN true_number;
 11       ELSIF NOT boolean_expression THEN
 12         RETURN false_number;
 13       ELSE
 14         RETURN NULL;
 15       END IF;
 16  END;
 17
 18  BEGIN
 19     DBMS_OUTPUT.PUT_LINE(iifn(2 > 1,1,0));
 20     DBMS_OUTPUT.PUT_LINE(iifn(2 > 3,1,0));
 21
 22     temp := iifn(null,1,0);
 23     IF temp IS NULL THEN
 24       DBMS_OUTPUT.PUT_LINE('NULL');
 25     ELSE
 26       DBMS_OUTPUT.PUT_LINE(temp);
 27     END IF;
 28  END;
 29  /
1
0
NULL
PL/SQL procedure successfully completed.
SQL>
SQL>
SQL>
SQL>