I know the concepts of Pass-by-value, Pass-by-reference, etc... So, I understand why explicitly defined functions throw a warning when the parameter is not defined.
But, if empty() and isset() are functions, then why doesn't it throw a warning when an undefined variable is passed? Is there some exceptional magic going on here? How do I replicate it?