Code Is Usually Not Data

One of the big problems with PHP is the include statement. You can include a file. You can define that file at runtime, and alter it during runtime. You can include a string with an interpolated variable. You can alter files and then include them.

These are all unusual cases.

What PHP needs is a code loader that accepts only a string constant as an argument, and loads relative from the current file. This statement should assume that the file is relatively unchanging, and check for file modification times only occasionally.

That way, the PHP compiler can map out what code is unchanging... and compile it into a giant static object.