Gah... I'm a slow poster... People have posted twice since this ;p.
isset is a language construct.
Hrmmm, I'm not sure how you could get around using isset though without causing PHP warnings though.
You tried to implement foreach() in C++? Man, you live on the edge! How would you have done that? Make an array_walk type function? Passing pointers to functions into functions would get murky quickly due to the strictness of function pointer passing in C++, although I guess you could use templating to make that easier maybe.
Or do you mean you actually tried to recreate the language construct foreach in C++?
I actually like the datatypes in C++. I mean, when it comes down to coding speed, I code in PHP about 2938908923589234 times faster, but something about the rigidity and what not I like.