=& nie wykryje mi niczego.
http://stackoverflow.com/questions/8971261...y-fix-availableKod
// Right way!
function myFunc(&$arg) { }
myFunc($var);
Kod
// Wrong way!
function myFunc($arg) { }
myFunc(&$arg);
Musiałbym szukać &$ ale tak naprawdę mogę też mieć & $ i tak naprawde wystąpienie tego ciągu nie musi oznaczać call-time pass-by-reference, tutaj zwykły grep nie pomoże bo potem za dużo analizowania ręcznego
PHP_CodeSniffer jest z tego co widzę najlepszym rozwiązaniem tym bardziej, że ta biblioteka standardów napisana jest przez gościa o nazwisku Wim Godden, który jest stałym speakerem na ZendCon, a nawet naszych polskich konferencjach i pisze też częściowo PHPUnit i ZF2
Kod
/usr/local/zend/bin/phpcs -s -n --standard=PHPCompatibility --sniffs=PHPCompatibility.PHP.ForbiddenCallTimePassByReference.NotAllowed --extensions=php app_dir > incompatibilities-specific.txt
Wypluwa coś takiego:
Kod
FILE: /root/tools/class/class.php
--------------------------------------------------------------------------------
FOUND 3 ERROR(S) AFFECTING 3 LINE(S)
--------------------------------------------------------------------------------
193 | ERROR | Using a call-time pass-by-reference is prohibited since php 5.4
| | (PHPCompatibility.PHP.ForbiddenCallTimePassByReference.NotAllowed)
200 | ERROR | Using a call-time pass-by-reference is prohibited since php 5.4
| | (PHPCompatibility.PHP.ForbiddenCallTimePassByReference.NotAllowed)
207 | ERROR | Using a call-time pass-by-reference is prohibited since php 5.4
| | (PHPCompatibility.PHP.ForbiddenCallTimePassByReference.NotAllowed)
--------------------------------------------------------------------------------
Zastanawiałem się czy jest może jeszcze jakieś fajne rozwiązanie