2017-01-27 2 views
0

Je possède ce code:Pourquoi NetBeans se plaint de la violation PSR-1 lors de l'attribution d'une valeur renvoyée?

<?php 

function f() { 
    return 5; 
} 

$a = 5; 

Et je me sers NetBeans 8.2 avec vérification de la compatibilité PSR-1 sous tension. Et je reçois cette erreur:

enter image description here

Pourquoi est-ce et comment puis-je résoudre ce problème?

+0

Vous n'indiquez pas de valeur renvoyée. Ce serait '$ a = f();' – JHoffmann

+0

http://php.net/manual/fr/oop5.intro.php – BadHorsie

+0

@JHoffmann: Oui mais même si j'attribue une valeur c'est toujours la même chose. – george

Répondre

1

Les PSR-1 standard Etats qui

Files SHOULD either declare symbols (classes, functions, constants, etc.) or cause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both.

Cela signifie que si vous avez des définitions de fonction ou de classe dans un fichier, vous ne devriez pas avoir le code avec side-effects (comme une affectation variable) en dehors de ces définitions dans le même fichier.

Alors

function f() { 
    return 5; 
} 

et

$a = 5; 

doivent être séparés dans des fichiers différents.

+0

Merci. Pourriez-vous s'il vous plaît expliquer pourquoi cela est devenu une norme? A quoi bon une telle séparation? – george

+1

Si vous conservez cette séparation, vous pouvez toujours être sûr que les fichiers de définition de classe/fonction purs ne changeront jamais d'état dans votre application. Cela rend le code réutilisable dans d'autres endroits, car l'inclusion d'un tel fichier n'interférera pas avec l'état du programme inclus (des erreurs peuvent apparaître en raison d'éventuels conflits de noms, etc.). – JHoffmann