Christian Weiske had an interesting situation pop up in one of his applications around a call to a variable with an interesting name.
Some days ago I saw the following fatal error for the first time in my life:
Fatal error: Cannot access property started with '\o' in file.php
After some debugging, I found out that the source of the error was not some strange BOM or UTF-8 characters in PHP source code files. No, it was a combination of protected class properties, object-to-array casting and automatic template property mappings.
As it turns out, there was a change in how object-to-array casting was done in PHP 5.3 that made this break (related to things appended to private and protected variable names). He includes a bit of sample code to illustrate the problem - a simple class converted from object to array with direct casting. He does point out that it doesn't happen with get_object_vars, though, as that doesn't do the casting, just extraction.
Link: http://cweiske.de/tagebuch/php-property-started-nul.htm
没有评论:
发表评论