4 ms·
> But letting users write code that appears to work (yet it does not) is not a good property of a language. I still don't see the point that's trying to be mad
by loganlinn 14y ago
> But letting users write code that appears to work (yet it does not) is not a good property of a language.
I still don't see the point that's trying to be made here. Whether it returns -1, FALSE, or you need a try/catch, the programmer still needs to check. To successfully program in any language with an 'index of' function, a check needs to exist regardless...
- TylerE 14y agoIn PHP, if you forget the check, and have error reporting turned off (which you should), you'd never KNOW you forgot the check, because missing it is only a logic error, whereas an exception blowing up a python script will be caught by the runtime.
- maratd 14y ago> have error reporting turned off (which you should) No, you should not. You should never have error reporting turned off. You should certainly have it set to not display errors to the client, but all errors should be sent to a log, preferably syslog, and they should be reviewed. Your code shouldn't generate any errors.
- angersock 14y ago"You should never have error reporting turned off." Ha. Ha ha. Ha ha ha. Tell me more about maintenance programming and legacy production systems.
- taytus 14y ago"You should never have error reporting turned of" Sorry bro, if you have ever put code on production with error reporting on...you are doing it wrong.
- maratd 14y agoI have and since I write the code, I expect zero errors. And that's what I get. When there are errors, that code needs to be fixed. Tell me more, bro.
- karolist 14y agoHe specifically mentioned you should have errors logged instead, not displayed to the client. You're quoting only the part that leads to your insult.
- corford 14y agoAre you insane? In production, you should have error_reporting set to something like: E_ALL & ~E_DEPRECATED And then: display_errors = Off display_startup_errors = Off track_errors = Off html_errors = Off ignore_repeated_errors = Off ignore_repeated_source = Off log_errors = On error_log = /path/to/log/file (or syslog)
- TylerE 14y agoI'm just calling it what php.ini calls it. The settings related to displayed errors in the page are error_reporting and display_errors. The error logging is a totally sperate group of keys starting with log_
- maratd 14y agoYes, I know. Like I said, error_reporting on (set to E_STRICT) and display_errors off. And yes, where the error goes is a completely different question.
- scott_s 14y agoTo make explicit the design problem: the "not found" sentinel is automatically converted to a valid index. That's dangerous.