Well.. This all depends on what type of error you are dealing with:
<?php
function something() {
// do function stuff
// }
if ($criteria) {
// 300 lines of code
}
?>
The php compiler would now think the error is at the end of the file, because you forgot a finishing '}' for the function. The if-test is supposed (in your head) to be outside the function, but how is php supposed to know that?
However, an error such as;
<?php
// 200 lines of code
print "hi';
// 50 lines of code
?>
would most likely give you a very accurate line number.
In other words, if this is a problem, you should, in case you don't, use indenting. And using a "real" programmers editor like emacs or vi, you can make some nifty cursor movements. (E.g. when you type }, the cursor automatically jumps to the corresponding { for a brief second. Same goes for paranthesis and so on).
If these kind of things happen to me, I usually comment out large chunks of the code, and if the error persists, i remove comments, comment out another chunk, etc. This way, I can (realtively and usually) locate it.