Is there an equivalent of "Deep C" for PHP?

That is indeed a really good link.

If I were to do a similar interview or slideshare, I would devote at least a full section to whether the applicant could read the php source code and pick out exactly what a function does. They do not need to know C as thoroughly as the girl in your link does, but they should know enough, and enough of how PHP and its extensions are written to track what exactly happens when they e.g. run a standard function, or one provided by an extension.

Poor documentation happens and being able to puzzle this stuff out - or isolate bugs and submit pull requests accordingly - is immensely valuable.

Another section would probably be worth exploring how php interfaces with your data store and web server, and the various gotchas that exist there. This is a fair bit more open-ended, but there are some annoying nuances with the way Apache handled FastCGI a few years back, and until 1.7.3 nginx would strip weak Etags when handling gzipping. Speaking of gzipping, on the more general level, discussing things that should be left to the webserver versus doing it in PHP.

A more common one would be for an applicant to have some insight into how high you should set the maximum requests before a child process restart. On a VPS when the default was 500, PHP was spending 20-25% of the time restarting. This was partially due to the very poor performance of virtualized platter drives, but also a testament to just how fast a well-tuned php config can serve requests.

On the database angle, there is plenty of fun to be had with PDO and MySQLi. Try writing an database wrapper that automatically prepares all input queries in MySQLi versus PDO. And then there are PDO's own gotchas, like PDO::ATTR_EMULATE_PREPARES

I could probably do a small bit on the pitfalls involved in PHP's $_SESSION, but that is slowly becoming less and less of a problem as more and more sites move to SSL. It's still left such a bad lolphp taste in my mouth that I wrote my own database-driven session handler instead.

Then there is talking to the browser - dynamic headers, managing cookies, SSL awareness. JSON.

In a full-fledged project, PHP is only a piece of the solution, so rather than 'deep c' I would probably consider the discussion to be more 'broad php' - a solid understanding of php is nice.

A solid understanding of how php interfaces with other technologies in your stack is better.

/r/PHP Thread