Is it safe to have single letter class names like A, B, P, etc?
Why should it be unsafe? You may use them, if you want. It only is discouraged, because single char class names aren't very descriptive...
Maybe you want to give the class a normal name but let the user import it with a short alias?
use Some\Long\But\Descriptive\Classname as A;
There's no reason why it shouldn't be, but it's more useful to give your classes a meaningful name
EDIT
Link to PHP naming guide
Yeah there is nothing stopping you except for the confusion factor.
It's interpreter-safe. But it may not keep you "safe" from fellow programmers who have to support it :)
Out of curiosity, what would be the compelling reason for that? I assume there must be one.
only safe if it's a class that communicates with no other by the same name
No.
Your future self will build a time machine for the sole purpose of slapping you for writing such unreadable code. And then, a paradox will result, and all of reality as we know it will be destroyed.
You should never give anything such awful names.
http://www.objectmentor.com/resources/articles/Naming.pdf
edit: on second thought, lets purposefully give things the wrong name, for example, a name mutator method could be setAge. This will make our code even harder to follow and ensure jobs for all time!!