Je me doute mais j'ai essayer d'être clair pour ceux qui connaissaient pas et qui passeraient par là .
Si ton attribut est utilisé par exemple pour une requête SQL tu peux le mettre en public et vérifié tes données avant ta requête mais si tu as décidé de validé tes données au moment de leur modification tu ne vérifie pas une seconde fois au moment de la requête donc un attributs public qui n'est pas contrôlé peut poser problème. Mais bon c'est une question de conception et des choix effectués comme souvent .
Le protected/private te sauve pour un Singleton par exemple ou dans les API et Framework. Utile aussi quand tu travaille en groupe puisque c'est toi qui gère les accés à tes attributs et méthodes de ta classe donc tu évite à celui qui utilise tes classes de devoir faire gaffe à quelles fonctions utilisés ou comment les utilisés.
PHP à implémenter l'Objet mais il ne permet pas autant de chose que les langages qui ont été dés le départ OO, je pense au C++ en particulier même si il faudrait je pense plus comparer avec le Python qui est plus proche.
Si ton attribut est utilisé par exemple pour une requête SQL tu peux le mettre en public et vérifié tes données avant ta requête mais si tu as décidé de validé tes données au moment de leur modification tu ne vérifie pas une seconde fois au moment de la requête donc un attributs public qui n'est pas contrôlé peut poser problème. Mais bon c'est une question de conception et des choix effectués comme souvent .
Le protected/private te sauve pour un Singleton par exemple ou dans les API et Framework. Utile aussi quand tu travaille en groupe puisque c'est toi qui gère les accés à tes attributs et méthodes de ta classe donc tu évite à celui qui utilise tes classes de devoir faire gaffe à quelles fonctions utilisés ou comment les utilisés.
PHP à implémenter l'Objet mais il ne permet pas autant de chose que les langages qui ont été dés le départ OO, je pense au C++ en particulier même si il faudrait je pense plus comparer avec le Python qui est plus proche.