Table des matières
PHP 反射 ReflectionClass,phpreflectionclass
php 怎把反射初始化的对象转换成类的对象
PHP 反射API的问题,急
Maison développement back-end tutoriel php PHP 反射 ReflectionClass,phpreflectionclass_PHP教程

PHP 反射 ReflectionClass,phpreflectionclass_PHP教程

Jul 13, 2016 am 10:15 AM
初始化

PHP 反射 ReflectionClass,phpreflectionclass

今天遇到了这样一个问题,如下代码:

classA.php

<?php

class ClassA{
	
	public function funcAa(){
	
	}
	
	public function funcAb(){
	
	}
	
	public function funcAc(){
	
	}
}

?>
Copier après la connexion

  

classB.php

<?php

include './classA.php';

class ClassB extends ClassA{

	public function funcBa(){
	
	}

	public function funcBb(){
	
	}

	public function funcBc(){
	
	}
	
	public function funcAa(){
	
		parent::funcAa();
	
	}
	
}

$classB = new ClassB;

$classFuncB = get_class_methods($classB);

echo '<pre class="brush:php;toolbar:false">';

print_r($classFuncB);
?>
Copier après la connexion

当我需要找出ClassB里面的所有方法的时候结果如下:

Array
(
    [0] => funcBa
    [1] => funcBb
    [2] => funcBc
    [3] => funcAa
    [4] => funcAb
    [5] => funcAc
)
Copier après la connexion

一共6个方法,实际上我不想要继承了ClassA里面的方法,我只想要ClassB的方法,怎么办呢?我稍微更改了如下:

$classA = new ClassA;

$classB = new ClassB;

$classFuncA = get_class_methods($classA);

$classFuncB = get_class_methods($classB);

echo '<pre class="brush:php;toolbar:false">';

print_r(array_diff($classFuncB,$classFuncA));
Copier après la connexion

结果如下:

Array
(
    [0] => funcBa
    [1] => funcBb
    [2] => funcBc
)
Copier après la connexion

少了一个方法 funcAa ,虽然funcAa是 ClassB 从 ClassA那里继承过来的,但是同样ClassB也有这个方法,所以不是我想要的结果。

解决方法:

$reflection = new ReflectionClass('ClassB');

print_r($reflection->getMethods());
Copier après la connexion

结果:

Array
(
    [0] => ReflectionMethod Object
        (
            [name] => funcBa
            [class] => ClassB
        )

    [1] => ReflectionMethod Object
        (
            [name] => funcBb
            [class] => ClassB
        )

    [2] => ReflectionMethod Object
        (
            [name] => funcBc
            [class] => ClassB
        )

    [3] => ReflectionMethod Object
        (
            [name] => funcAa
            [class] => ClassB
        )

    [4] => ReflectionMethod Object
        (
            [name] => funcAb
            [class] => ClassA
        )

    [5] => ReflectionMethod Object
        (
            [name] => funcAc
            [class] => ClassA
        )

)
Copier après la connexion

可以看到 [4]、[5] 里面的class 对应的值是ClassA,而其他对应的值都是ClassB。通过这个可以用foreach来实现最后想要的结果:

$reflection = new ReflectionClass('ClassB');

$array = '';

foreach($reflection->getMethods() as $obj){
	
	if($obj->class == $reflection->getName()){	//$reflection->getName()  获取类名
		
		$array[] = $obj->name;
	
	}

}

echo '<pre class="brush:php;toolbar:false">';

print_r($array);
Copier après la connexion

最后结果:

Array
(
    [0] => funcBa
    [1] => funcBb
    [2] => funcBc
    [3] => funcAa
)
Copier après la connexion

完成,关于 ReflectionClass 更多的知识请参考手册

php 怎把反射初始化的对象转换成类的对象

你要确定引入了User类的类定义文件,否则反序列化是不会成功的。
反序列化失败,$user就不会是User对象的实例,也就不会存在方法getModelName了。
 

PHP 反射API的问题,急

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/900990.htmlTechArticlePHP 反射 ReflectionClass,phpreflectionclass 今天遇到了这样一个问题,如下代码: classA.php ?phpclass ClassA{public function funcAa(){}public function funcAb(){}...
Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Windows ne peut pas initialiser le pilote de périphérique pour ce correctif matériel (code 37) Windows ne peut pas initialiser le pilote de périphérique pour ce correctif matériel (code 37) Apr 14, 2023 pm 01:22 PM

Lorsque Windows détecte que le pilote d'un périphérique est incompatible ou corrompu, il ne peut pas l'initialiser. Le périphérique cesse de fonctionner et lorsque l'utilisateur enquête, un message d'erreur « Windows ne peut pas initialiser le pilote de périphérique pour ce matériel (code 37) » apparaît dans le volet État du périphérique. Résoudre ce problème est simple et vous pouvez le faire facilement. Correctif 1 – Analysez votre ordinateur Vous pouvez analyser votre appareil pour détecter toute modification matérielle. Windows finira par vérifier et détecter toute modification du pilote. 1. Il vous suffit de faire un clic droit sur la « Clé Windows » et de cliquer sur « Gestionnaire de périphériques ». 2. Lorsque le Gestionnaire de périphériques apparaît sur votre système, cliquez sur Actions dans la barre de menu. 3. Ici,

CORRECTIF : Windows ne peut pas initialiser le pilote de périphérique pour ce matériel CORRECTIF : Windows ne peut pas initialiser le pilote de périphérique pour ce matériel Apr 13, 2023 pm 01:19 PM

Le code d'erreur 37 signifie que Windows a détecté un problème avec le pilote de périphérique et ne peut pas démarrer le périphérique matériel. Cela signifie que le pilote de périphérique logiciel n'est pas installé correctement sur votre système ou que le matériel que vous essayez d'utiliser n'est pas compatible avec Windows. Vous savez déjà que les pilotes sont cruciaux pour le bon fonctionnement de votre appareil, donc si vous envisagez d'utiliser un périphérique matériel, vous devez résoudre cette erreur immédiatement. Dans cet article, nous allons vous montrer différentes manières de contourner cette erreur. Qu’est-ce qui cause le code d’erreur Windows 37 ? Lorsque vous obtenez, Windows ne peut pas initialiser le pilote de périphérique pour ce matériel. (Code 37), cela peut être dû à plusieurs problèmes, notamment : Problèmes de compatibilité – Lorsque vous ajoutez un disque dur

Que faire si la routine d'initialisation de la bibliothèque de liens dynamiques échoue Que faire si la routine d'initialisation de la bibliothèque de liens dynamiques échoue Dec 29, 2023 am 10:30 AM

Solution : 1. Réinstallez l'application ; 2. Réparez ou réinstallez la DLL ; 3. Restauration du système ou récupération du point de contrôle ; 4. Analysez à l'aide du vérificateur de fichiers système (SFC) ; Consultez la documentation officielle ou les forums ; 8. Envisagez un logiciel de sécurité ; 9. Vérifiez l'observateur d'événements ; 10. Demandez l'aide d'un expert, etc.

Comment initialiser l'ordinateur dans Win7 Comment initialiser l'ordinateur dans Win7 Jan 07, 2024 am 11:53 AM

Le système win7 est un très excellent système hautes performances Lors de l'utilisation continue de win7, de nombreux amis demandent comment initialiser l'ordinateur dans win7 ! Aujourd'hui, l'éditeur vous expliquera comment restaurer les paramètres d'usine d'un ordinateur win7. Informations connexes sur la façon d'initialiser l'ordinateur dans Win7 : Instructions détaillées avec images et texte Étapes : 1. Ouvrez le « Menu Démarrer » et entrez. 2. Cliquez pour entrer les paramètres en bas du côté gauche. 3. Dans l'interface des paramètres de mise à jour et de récupération Win10, sélectionnez. 4. Cliquez ci-dessous « Supprimer tout le contenu et réinstaller Windows ». 5. Vous pouvez voir les paramètres « Initialisation » suivants, puis cliquez sur. 6. Entrez l'option de paramètre « Votre ordinateur dispose de plusieurs lecteurs ». Il existe deux options ici, que vous pouvez choisir en fonction de la situation.

Comment réinitialiser les paramètres réseau Win7 Comment réinitialiser les paramètres réseau Win7 Dec 26, 2023 pm 06:51 PM

Le système win7 est un très excellent système hautes performances. Récemment, de nombreux amis du système win7 cherchent comment initialiser les paramètres réseau dans win7. Aujourd'hui, l'éditeur vous apporte les détails de l'initialisation du réseau informatique win7. au tutoriel. Tutoriel détaillé sur la façon d'initialiser les paramètres réseau dans Win7 : Étapes graphiques : 1. Cliquez sur le menu « Démarrer », recherchez et ouvrez le « Panneau de configuration », puis cliquez sur « Centre Réseau et partage ». 2. Ensuite, recherchez et cliquez sur « Modifier le périphérique adaptateur ». 3. Ensuite, dans la fenêtre qui s'ouvre, cliquez avec le bouton droit sur « Connexion au réseau local » puis cliquez sur « Propriétés ». 4. Après l'avoir ouvert, recherchez « Version du protocole Internet (TCP/IPv4) » et doublez

Réparer Impossible d'initialiser l'erreur du système graphique sur PC Réparer Impossible d'initialiser l'erreur du système graphique sur PC Mar 08, 2024 am 09:55 AM

De nombreux joueurs ont rencontré le problème frustrant de l’échec du jeu à initialiser le système graphique. Cet article examinera les raisons courantes de ce problème et trouvera des solutions simples mais efficaces qui vous permettront de revenir sur le plateau et de battre le niveau en un rien de temps. Donc, si vous recevez un message d'erreur Impossible d'initialiser le système graphique dans Rollercoaster Tycoon, Assassin's Creed, Tony Hawk's Pro Skater, etc., suivez les solutions mentionnées dans cet article. Erreur d'initialisation Impossible d'initialiser le système graphique. Les cartes graphiques ne sont pas prises en charge. Corriger le message d'erreur Impossible d'initialiser le système graphique Pour résoudre l'erreur Impossible d'initialiser le système graphique dans des jeux comme Rollercoaster Tycoon, Assassin's Creed, Tony Hawk's Pro Skater, etc., vous pouvez essayer les solutions de contournement suivantes : Mettez à jour le pilote de votre carte graphique dans le mode de compatibilité

Dictionnaire d'initialisation du programme C++ Dictionnaire d'initialisation du programme C++ Sep 09, 2023 pm 07:01 PM

C++ diffère de Python en termes de dictionnaire portant le même nom, mais il possède la même structure de données avec des fonctionnalités similaires. C++ prend en charge le mappage, qui peut être utilisé dans la classe STL std::map. L'objet map contient une paire de valeurs dans chaque entrée, l'une est la valeur clé et l'autre est la valeur map. Les valeurs clés sont utilisées pour rechercher et identifier de manière unique les entrées dans la carte. Bien que les valeurs mappées ne soient pas nécessairement uniques, les valeurs clés doivent toujours être uniques dans la carte. Voyons comment utiliser le mappage. Voyons d’abord comment définir une structure de données mappée en C++. Syntaxe #includemap<data_type1,data_type2>myMap Prenons un exemple pour voir comment procéder - Exemple #incl ;

Correctif : le nouveau SSD n'apparaît pas dans Windows 11, 10 Correctif : le nouveau SSD n'apparaît pas dans Windows 11, 10 Apr 14, 2023 pm 02:52 PM

Les SSD ont révolutionné le monde de la technologie. Ces solutions de stockage de données, avec leurs vitesses de lecture/écriture ultra-rapides et inégalées, donnent envie à chaque utilisateur d'y installer son système d'exploitation. Mais que se passe-t-il si votre nouveau SSD n’apparaît pas sur votre appareil Windows ? Il s'agit d'un problème typique auquel vous pourriez être confronté avec un tout nouveau SSD branché sur votre système. Ne t'inquiète pas. Nous venons d'avoir la bonne solution, tout ce que vous avez à faire est de suivre ces étapes et votre SSD sera de retour dans votre explorateur de fichiers en un rien de temps. Solution - 1. Vérifiez la connexion SSD. Si vous utilisez un hub USB, connectez le SSD directement à votre système. Vérifiez les connecteurs du SSD pour déceler tout défaut physique.

See all articles