Maison > Article > développement back-end > Modificateurs d'accès en PHP
Le modificateur d'accès est un moyen de définir la portée et les droits d'accessibilité sur la variable de tout autre identifiant PHP. PHP prend en charge divers mots-clés pour permettre à n'importe quelle variable d'accéder à n'importe quelle variable et aux identifiants. Nous pouvons attribuer ces mots-clés à la classe, à la fonction ou aux identifiants. Ces mots-clés – public, privé, protégé, abstrait, final, etc.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
PHP a certaines limitations sur son modificateur d'accès, contrairement à Java. Nous ne pouvons pas utiliser tous les modificateurs d'accès PHP au niveau de la classe, au niveau de la fonction et au niveau de l'identifiant. Nous pouvons utiliser ces modificateurs d'accès selon nos besoins professionnels pour accorder ou révoquer l'autorisation dans l'ensemble du programme ou de l'application.
Voici les modificateurs de liste et s'ils sont applicables ou non :
Access Modifier | Class Level | Function Level | Variable Level |
public | NA | YES | YES |
private | NA | YES | YES |
protected | NA | YES | YES |
abstract | YES | YES | NA |
final | YES | YES | NA |
Static | NA | YES | YES |
Dans le conte ci-dessus, NA désigne le Non Applicable. Cela signifie que nous ne pouvons pas utiliser le public, le privé et le protégé au niveau de la classe. Nous ne pouvons utiliser le résumé et le final qu'au niveau de la classe.
Voici les modificateurs d'accès suivants en PHP mentionnés ci-dessous
Le public est le modificateur par défaut comme JAVA en PHP. Cela signifie que si l'on n'utilise aucun modificateur avec les fonctions des identifiants par défaut, il est considéré comme un modificateur d'accès public. C’est l’un des plus utilisés. Dès que nous arrivons à la réutilisation du code de la fonction, nous optons généralement pour le modificateur d'accès public. Parce que le public peut être utilisé n'importe où, dans la classe bien sûr, en dehors de la classe, dans la classe étendue, et si ce public réutilisable n'est lié à aucune classe, nous pouvons l'utiliser partout où nous incluons le fichier. Comme mentionné dans le tableau ci-dessus, nous ne pouvons pas utiliser ce modificateur public avec la classe ainsi que private et protected.
Maintenant, il est temps de voir l'exemple du modificateur d'accès public :
<?php class MyAccess { var $var = "This is first var"; // print var variable value function returnVar() { echo $this->var; } } $obj1 = new MyAccess();$obj1->returnVar(); ?>
Dans le code ci-dessus, la fonction returnVar() a été définie sans modificateur d'accès, elle fonctionnera donc aussi publiquement car il s'agit du modificateur par défaut dans le langage PHP.
public, privé et protégé ne seront pas applicables au niveau de la classe ; voyons cela avec un exemple.
<?php class public MyAccess { var $var = "This is first var"; function returnVar() { echo $this->var; } } $obj1 = new MyAccess(); $obj1->returnVar(); ?>
Le code ci-dessus donnera une erreur comme mentionné ci-dessous :
( ! ) Erreur d'analyse : erreur de syntaxe, « public » inattendu (T_PUBLIC), identifiant attendu (T_STRING) dans E:wampwwwtwitindex.php à la ligne 2
Cela reste le même pour les privés et les protégés également.
<?php class private MyAccess { var $var = "This is first var"; } ?> <?php class protected MyAccess { var $var = "This is first var"; } ?>
Ce modificateur utilise le mot-clé privé à traiter. Nous ne pouvons pas utiliser le modificateur privé avec la classe. Nous pouvons l'utiliser uniquement avec les variables de classe et les méthodes de classe (comme nous l'avons mentionné dans le tableau ci-dessus). Lorsque nous déclarons et utilisons le private, il n'est pas accessible à l'aide de l'objet de la classe. Il ne peut être utilisé qu'au sein de la classe.
Par exemple
<?php class MyAccess { var $var = "This is first var"; private $fist_name; // simple class method function returnVar() { echo $this->fist_name; } function set_fist_name($set_this){ $this->fist_name = $set_this; } } $obj1 = new MyAccess(); echo $obj1->fist_name; // will give the error $obj1->set_fist_name("Jai Shre"); $obj1->returnVar(); ?>
echo $obj1->fist_name; // donnera l'erreur
Cette ligne de code que nous pouvons utiliser car elle générera l'erreur. C'est quelque chose auquel nous ne pouvons pas accéder à la variable privée en utilisant l'objet de cette classe. Mais nous pouvons l'utiliser en utilisant son paramètre et la méthode getter comme nous l'utilisons dans le code ci-dessus. $obj1->set_fist_name("Jai Shre"); une ligne de code définira la valeur dans la variable et utilisera $obj1->returnVar(); nous pouvons obtenir la valeur de la variable définie.
Tout comme public et privé, protected lui-même ne prend pas en charge au niveau de la classe. Comme un modificateur privé, protected restreint également l'accès aux variables de classe ou à la fonction depuis l'extérieur de la classe. Il peut être utilisé au sein de la même classe et à partir de la sous-classe (classe enfant).
Par exemple
<?php class MyAccess { var $var = "This is first var"; protected $fist_name; // simple class method function returnVar() { echo $this->fist_name; } function set_fist_name($set_this){ $this->fist_name = $set_this; } } class child extends MyAccess { function setVal($set_this){ $this->fist_name = $set_this; } function getVal(){ echo $this->fist_name; } } $obj1 = new child(); //echo $obj1->fist_name; // will give the error $obj1->setVal("Jai Shre"); $obj1->getVal(); ?>
echo $obj1->fist_name; la ligne de code donnera l'erreur ci-dessous
Sortie :
Erreur fatale : Impossible d'accéder à la propriété protégée MyAccess::$fist_name dans E:wampwwwtwitindex.php en ligne 20
Il peut être utilisé sur la classe et la fonction, pas sur la variable de classe. Si une classe possède au moins une fonction abstraite, elle doit alors être déclarée comme abstraite. Nous ne pouvons pas instancier la classe abstraite. Une classe abstraite est principalement considérée comme une classe incomplète.
Si un cours est déclaré final, nous ne pouvons pas prolonger ce cours. PHP restreint l'héritage de la classe finale.
Le mot-clé static peut être utilisé pour rendre n'importe quelle fonction statique. Il active la capacité de cette fonction afin que l'on puisse l'utiliser pour créer un objet de la classe dans laquelle elle a été déclarée. Exemple de méthode statique –
public static function static Function() { // declaration goes here.. }
Nous devons toujours utiliser le modificateur d'accès conformément aux exigences de l'entreprise. En utilisant private et protected, nous pouvons restreindre l'utilisation directe de variables privées et de méthodes privées en dehors de la classe déclarée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!