I do not recommend following along in PHP, or Go.
Key features from the Java syntax make it more of a chore to try and translate it into a different language, taking away the learning aspect of it and causing unnecessary friction.
Particularly, I'm struggling on Chapter 13, where he casts an instance of Expression to a Sum, which was possible after hacking together a cast function using Reflection. But it took away the focus on the TDD process.