Maison  >  Article  >  développement back-end  >  Modificateurs d'accès en PHP

Modificateurs d'accès en PHP

PHPz
PHPzoriginal
2024-08-29 13:06:31981parcourir

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

Quand utiliser les modificateurs d'accès en PHP ?

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.

Divers modificateurs d'accès en PHP

Voici les modificateurs d'accès suivants en PHP mentionnés ci-dessous

1. Modificateur d'accès public

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.

Modificateurs d'accès en 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";
}
?>

2. Modificateur d'accès privé

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.

3. Modificateur d'accès protégé

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

4. Modificateur d'accès abstrait

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.

5. Modificateur d'accès final

Si un cours est déclaré final, nous ne pouvons pas prolonger ce cours. PHP restreint l'héritage de la classe finale.

6. Modificateur d'accès statique

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..
}

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:PHP display_errorsArticle suivant:PHP display_errors