"php -l" - does it find *anything*?

From: Date: Tue, 06 Jul 2010 08:54:43 +0000
Subject: "php -l" - does it find *anything*?
Groups: php.general 
Request: Send a blank email to php-general+get-306701@lists.php.net to get a copy of this message
Or, alternatively put, is there any way to find the kind of problems in foo2 & foo3 (below), at "*compile* time"? ,----[ lint-test.php ] | <?php | | error_reporting(E_ALL | E_STRICT); | | function foo1() | { | $bar = 'cheese'; | echo $bar; | } | | function foo2() | { | $bar = 'cheese'; | echo 'cheese'; | } | | function foo3() | { | // $bar = 'cheese'; | echo $bar; | } | | foo1(); | foo2(); | foo3(); | | ?> `---- I only get errors displayed when code happens to pass down the code path, i.e. at runtime: ,---- | /home/jg/work $ php -l lint-test.php | No syntax errors detected in lint-test.php | /home/jg/work $ php lint-test.php | cheesecheese | Notice: Undefined variable: bar in | /home/jg/work/lint-test.php on line 20 | | Call Stack: | 1.0000 61488 1. {main}() | /home/jg/work/lint-test.php:0 | 1.0000 61680 2. foo3() | /home/jg/work/lint-test.php:25 `---- If foo3 never happens to be called when I am doing my testing (for example if the call is in some "if" branch that is never exercised) then it only gets found in production, so I would like to find this kind of thing using a static analyser. The kind of problem in foo2 I could live with, but would like to find as well, if possible. (Obviously I am using these two example problems as indicative of the type of things I want to find, it isn't an exhaustive list!) BTW, what problems *does* "php -l" pick up? I can't find a description anywhere.

« previous php.general (#306701) next »