__get() and __set() can be private, but not __call(). Why?
Maybe my brain just isn't working and there's some obvious explanation for this, but for now I'm bewildered.
When I test, I find that __get() and __set() will intercept member variable access even if they're private or protected, but when I try to make __call() private, I get an error message. The examples in the PHP manual seem to reflect this difference.
Dagfinn Reiersøl PHP in Action / Blog / Twitter "Making the impossible possible, the possible easy,
and the easy elegant" -- Moshe Feldenkrais