Add prefix to php reserved keywords.
diff --git a/php/tests/generated_class_test.php b/php/tests/generated_class_test.php
index 98918bc..c63318a 100644
--- a/php/tests/generated_class_test.php
+++ b/php/tests/generated_class_test.php
@@ -691,6 +691,228 @@
         $m = new \Foo\PBEmpty();
         $m = new \PrefixEmpty();
         $m = new \Foo\PBARRAY();
+
+        $m = new \Lower\PBabstract();
+        $m = new \Lower\PBand();
+        $m = new \Lower\PBarray();
+        $m = new \Lower\PBas();
+        $m = new \Lower\PBbreak();
+        $m = new \Lower\PBcallable();
+        $m = new \Lower\PBcase();
+        $m = new \Lower\PBcatch();
+        $m = new \Lower\PBclass();
+        $m = new \Lower\PBclone();
+        $m = new \Lower\PBconst();
+        $m = new \Lower\PBcontinue();
+        $m = new \Lower\PBdeclare();
+        $m = new \Lower\PBdefault();
+        $m = new \Lower\PBdie();
+        $m = new \Lower\PBdo();
+        $m = new \Lower\PBecho();
+        $m = new \Lower\PBelse();
+        $m = new \Lower\PBelseif();
+        $m = new \Lower\PBempty();
+        $m = new \Lower\PBenddeclare();
+        $m = new \Lower\PBendfor();
+        $m = new \Lower\PBendforeach();
+        $m = new \Lower\PBendif();
+        $m = new \Lower\PBendswitch();
+        $m = new \Lower\PBendwhile();
+        $m = new \Lower\PBeval();
+        $m = new \Lower\PBexit();
+        $m = new \Lower\PBextends();
+        $m = new \Lower\PBfinal();
+        $m = new \Lower\PBfor();
+        $m = new \Lower\PBforeach();
+        $m = new \Lower\PBfunction();
+        $m = new \Lower\PBglobal();
+        $m = new \Lower\PBgoto();
+        $m = new \Lower\PBif();
+        $m = new \Lower\PBimplements();
+        $m = new \Lower\PBinclude();
+        $m = new \Lower\PBinclude_once();
+        $m = new \Lower\PBinstanceof();
+        $m = new \Lower\PBinsteadof();
+        $m = new \Lower\PBinterface();
+        $m = new \Lower\PBisset();
+        $m = new \Lower\PBlist();
+        $m = new \Lower\PBnamespace();
+        $m = new \Lower\PBnew();
+        $m = new \Lower\PBor();
+        $m = new \Lower\PBprint();
+        $m = new \Lower\PBprivate();
+        $m = new \Lower\PBprotected();
+        $m = new \Lower\PBpublic();
+        $m = new \Lower\PBrequire();
+        $m = new \Lower\PBrequire_once();
+        $m = new \Lower\PBreturn();
+        $m = new \Lower\PBstatic();
+        $m = new \Lower\PBswitch();
+        $m = new \Lower\PBthrow();
+        $m = new \Lower\PBtrait();
+        $m = new \Lower\PBtry();
+        $m = new \Lower\PBunset();
+        $m = new \Lower\PBuse();
+        $m = new \Lower\PBvar();
+        $m = new \Lower\PBwhile();
+        $m = new \Lower\PBxor();
+        $m = new \Lower\PBint();
+        $m = new \Lower\PBfloat();
+        $m = new \Lower\PBbool();
+        $m = new \Lower\PBstring();
+        $m = new \Lower\PBtrue();
+        $m = new \Lower\PBfalse();
+        $m = new \Lower\PBnull();
+        $m = new \Lower\PBvoid();
+        $m = new \Lower\PBiterable();
+
+        $m = new \Upper\PBABSTRACT();
+        $m = new \Upper\PBAND();
+        $m = new \Upper\PBARRAY();
+        $m = new \Upper\PBAS();
+        $m = new \Upper\PBBREAK();
+        $m = new \Upper\PBCALLABLE();
+        $m = new \Upper\PBCASE();
+        $m = new \Upper\PBCATCH();
+        $m = new \Upper\PBCLASS();
+        $m = new \Upper\PBCLONE();
+        $m = new \Upper\PBCONST();
+        $m = new \Upper\PBCONTINUE();
+        $m = new \Upper\PBDECLARE();
+        $m = new \Upper\PBDEFAULT();
+        $m = new \Upper\PBDIE();
+        $m = new \Upper\PBDO();
+        $m = new \Upper\PBECHO();
+        $m = new \Upper\PBELSE();
+        $m = new \Upper\PBELSEIF();
+        $m = new \Upper\PBEMPTY();
+        $m = new \Upper\PBENDDECLARE();
+        $m = new \Upper\PBENDFOR();
+        $m = new \Upper\PBENDFOREACH();
+        $m = new \Upper\PBENDIF();
+        $m = new \Upper\PBENDSWITCH();
+        $m = new \Upper\PBENDWHILE();
+        $m = new \Upper\PBEVAL();
+        $m = new \Upper\PBEXIT();
+        $m = new \Upper\PBEXTENDS();
+        $m = new \Upper\PBFINAL();
+        $m = new \Upper\PBFOR();
+        $m = new \Upper\PBFOREACH();
+        $m = new \Upper\PBFUNCTION();
+        $m = new \Upper\PBGLOBAL();
+        $m = new \Upper\PBGOTO();
+        $m = new \Upper\PBIF();
+        $m = new \Upper\PBIMPLEMENTS();
+        $m = new \Upper\PBINCLUDE();
+        $m = new \Upper\PBINCLUDE_ONCE();
+        $m = new \Upper\PBINSTANCEOF();
+        $m = new \Upper\PBINSTEADOF();
+        $m = new \Upper\PBINTERFACE();
+        $m = new \Upper\PBISSET();
+        $m = new \Upper\PBLIST();
+        $m = new \Upper\PBNAMESPACE();
+        $m = new \Upper\PBNEW();
+        $m = new \Upper\PBOR();
+        $m = new \Upper\PBPRINT();
+        $m = new \Upper\PBPRIVATE();
+        $m = new \Upper\PBPROTECTED();
+        $m = new \Upper\PBPUBLIC();
+        $m = new \Upper\PBREQUIRE();
+        $m = new \Upper\PBREQUIRE_ONCE();
+        $m = new \Upper\PBRETURN();
+        $m = new \Upper\PBSTATIC();
+        $m = new \Upper\PBSWITCH();
+        $m = new \Upper\PBTHROW();
+        $m = new \Upper\PBTRAIT();
+        $m = new \Upper\PBTRY();
+        $m = new \Upper\PBUNSET();
+        $m = new \Upper\PBUSE();
+        $m = new \Upper\PBVAR();
+        $m = new \Upper\PBWHILE();
+        $m = new \Upper\PBXOR();
+        $m = new \Upper\PBINT();
+        $m = new \Upper\PBFLOAT();
+        $m = new \Upper\PBBOOL();
+        $m = new \Upper\PBSTRING();
+        $m = new \Upper\PBTRUE();
+        $m = new \Upper\PBFALSE();
+        $m = new \Upper\PBNULL();
+        $m = new \Upper\PBVOID();
+        $m = new \Upper\PBITERABLE();
+
+        $m = \Lower_enum\NotAllowed::PBabstract;
+        $m = \Lower_enum\NotAllowed::PBand;
+        $m = \Lower_enum\NotAllowed::PBarray;
+        $m = \Lower_enum\NotAllowed::PBas;
+        $m = \Lower_enum\NotAllowed::PBbreak;
+        $m = \Lower_enum\NotAllowed::PBcallable;
+        $m = \Lower_enum\NotAllowed::PBcase;
+        $m = \Lower_enum\NotAllowed::PBcatch;
+        $m = \Lower_enum\NotAllowed::PBclass;
+        $m = \Lower_enum\NotAllowed::PBclone;
+        $m = \Lower_enum\NotAllowed::PBconst;
+        $m = \Lower_enum\NotAllowed::PBcontinue;
+        $m = \Lower_enum\NotAllowed::PBdeclare;
+        $m = \Lower_enum\NotAllowed::PBdefault;
+        $m = \Lower_enum\NotAllowed::PBdie;
+        $m = \Lower_enum\NotAllowed::PBdo;
+        $m = \Lower_enum\NotAllowed::PBecho;
+        $m = \Lower_enum\NotAllowed::PBelse;
+        $m = \Lower_enum\NotAllowed::PBelseif;
+        $m = \Lower_enum\NotAllowed::PBempty;
+        $m = \Lower_enum\NotAllowed::PBenddeclare;
+        $m = \Lower_enum\NotAllowed::PBendfor;
+        $m = \Lower_enum\NotAllowed::PBendforeach;
+        $m = \Lower_enum\NotAllowed::PBendif;
+        $m = \Lower_enum\NotAllowed::PBendswitch;
+        $m = \Lower_enum\NotAllowed::PBendwhile;
+        $m = \Lower_enum\NotAllowed::PBeval;
+        $m = \Lower_enum\NotAllowed::PBexit;
+        $m = \Lower_enum\NotAllowed::PBextends;
+        $m = \Lower_enum\NotAllowed::PBfinal;
+        $m = \Lower_enum\NotAllowed::PBfor;
+        $m = \Lower_enum\NotAllowed::PBforeach;
+        $m = \Lower_enum\NotAllowed::PBfunction;
+        $m = \Lower_enum\NotAllowed::PBglobal;
+        $m = \Lower_enum\NotAllowed::PBgoto;
+        $m = \Lower_enum\NotAllowed::PBif;
+        $m = \Lower_enum\NotAllowed::PBimplements;
+        $m = \Lower_enum\NotAllowed::PBinclude;
+        $m = \Lower_enum\NotAllowed::PBinclude_once;
+        $m = \Lower_enum\NotAllowed::PBinstanceof;
+        $m = \Lower_enum\NotAllowed::PBinsteadof;
+        $m = \Lower_enum\NotAllowed::PBinterface;
+        $m = \Lower_enum\NotAllowed::PBisset;
+        $m = \Lower_enum\NotAllowed::PBlist;
+        $m = \Lower_enum\NotAllowed::PBnamespace;
+        $m = \Lower_enum\NotAllowed::PBnew;
+        $m = \Lower_enum\NotAllowed::PBor;
+        $m = \Lower_enum\NotAllowed::PBprint;
+        $m = \Lower_enum\NotAllowed::PBprivate;
+        $m = \Lower_enum\NotAllowed::PBprotected;
+        $m = \Lower_enum\NotAllowed::PBpublic;
+        $m = \Lower_enum\NotAllowed::PBrequire;
+        $m = \Lower_enum\NotAllowed::PBrequire_once;
+        $m = \Lower_enum\NotAllowed::PBreturn;
+        $m = \Lower_enum\NotAllowed::PBstatic;
+        $m = \Lower_enum\NotAllowed::PBswitch;
+        $m = \Lower_enum\NotAllowed::PBthrow;
+        $m = \Lower_enum\NotAllowed::PBtrait;
+        $m = \Lower_enum\NotAllowed::PBtry;
+        $m = \Lower_enum\NotAllowed::PBunset;
+        $m = \Lower_enum\NotAllowed::PBuse;
+        $m = \Lower_enum\NotAllowed::PBvar;
+        $m = \Lower_enum\NotAllowed::PBwhile;
+        $m = \Lower_enum\NotAllowed::PBxor;
+        $m = \Lower_enum\NotAllowed::PBint;
+        $m = \Lower_enum\NotAllowed::PBfloat;
+        $m = \Lower_enum\NotAllowed::PBbool;
+        $m = \Lower_enum\NotAllowed::PBstring;
+        $m = \Lower_enum\NotAllowed::PBtrue;
+        $m = \Lower_enum\NotAllowed::PBfalse;
+        $m = \Lower_enum\NotAllowed::PBnull;
+        $m = \Lower_enum\NotAllowed::PBvoid;
+        $m = \Lower_enum\NotAllowed::PBiterable;
     }
 
     #########################################################