Since PHP is quite a forgiving language you could prevent this default behavior by overloading __callStatic and maybe use reflections to validate the method scope.
http://php.net/manual/en/language.oop5.overloading.php#object.call
http://php.net/ReflectionClass