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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux