Checking for E_STRICT
If you only have a single script to check, you can pick up
E_STRICT
errors using PHP's commandline lint
facility:
php -d error_reporting=4095 -l script_to_check.php
For larger projects, the shell script below will achieve the same task:
#!/bin/sh directory=$1 shift # These extensions are checked extensions="php inc" check_file () { echo -ne "Doing PHP syntax check on $1 ..." # Options: ERRORS=`/www/php/bin/php -d display_errors=1 -d html_errors=0 -d error_prepend_string=" " -d error_append_string=" " -d error_reporting=4095 -l $1 | grep -v "No syntax errors detected"` if test -z "$ERRORS"; then echo -ne "OK." else echo -e "Errors found!\n$ERRORS" fi echo } # loop over remaining file args for FILE in "$@" ; do for ext in $extensions; do if echo $FILE | grep "\.$ext$" > /dev/null; then if test -f $FILE; then check_file "$FILE" fi fi done done
Коментарии
Example usage:
<?php
//Errors will be printed on the screen with the following line
error_reporting(E_STRICT);
function change (&$var) {
$var += 10;
}
$var = 1;
change(++$var);
echo "var=$var";
change($var = 5);
echo "var=$var";
?>
More examples:
http://en.wikipedia.org/wiki/E_STRICT