Maison > développement back-end > tutoriel php > Pseudotypes et pseudovariables en PHP

Pseudotypes et pseudovariables en PHP

怪我咯
Libérer: 2023-03-10 20:00:01
original
2402 Les gens l'ont consulté

1. Pseudo-types

Il existe trois pseudo-types PHP, à savoir : 1, type mixte. 2. numéro de type numérique. 3. rappeltype de rappel.

1, type mixte mixte :

mixte indique qu'un paramètre peut accepter plusieurs types différents, mais pas tous les types.

2, type de numéro :

Le paramètre number peut accepter le type entier entier et le type floatà virgule flottante.

3. Type de rappel :

Par exemple, la fonction call_user_func() peut recevoir une fonction définie par l'utilisateur en tant que paramètre, qui est php Une fonction intégrée . La fonction de rappel peut être non seulement une fonction, mais aussi une méthode d'objet et une méthode d'une classe statique. Une fonction php est transmise avec le nom de la fonction string Toute fonction intégrée ou définie par l'utilisateur peut être transmise, à l'exception des structures de langage telles que array(), echo(), vide. () ,eval(),exit(),isset(),list(),print(),unset(), etc.

Si vous souhaitez transmettre la méthode d'un objet, il doit être transmis sous la forme d'un tableau. L'indice du tableau 0 est le nom de l'objet et l'indice 1 est le nom de la méthode. S'il n'y a pas de classe statique instanciée en tant qu'objet, pour transmettre sa méthode, remplacez le nom de l'objet spécifié par l'indice du tableau 0 par le nom de la classe.

En plus des fonctions ordinaires définies par l'utilisateur, vous pouvez également utiliser create_function pour créer une fonction de rappel anonyme .

Exemple ::

<?php

	//普通的回调函数
	function my_callback_function(){
		echo "my is callback function.";
	}

	//回调方法
	class MyClass{
		static function myCallbackMethod(){
			echo "my is callback method.";
		}
	}

	//num1:回调函数
	call_user_func(&#39;my_callback_function&#39;);

	//num2:静态类的方法
	call_user_func(array(&#39;MyClass&#39;,&#39;myCallbackMethod&#39;));

	//num3:对象方法
	$obj = new MyClass();
	call_user_func(array($obj,&#39;myCallbackMethod&#39;));

	//num4:静态类的方法(5.3.0以上)
	call_user_func(&#39;MyClass::myCallbackMethod&#39;);

	//num5:相对静态方法调用
	class A {
		public static function who(){
			echo "A";
		}
	}

	class B extends A {
		public static function who(){
			echo "B";
		}
	}

	call_user_func(array(&#39;B&#39;,&#39;parent::who&#39;));	//输出B

	//num6:调用时传入参数
	function test($a,$b){
		echo $a;
		echo $b;
	}

	call_user_function(&#39;test&#39;,&#39;1&#39;,&#39;2&#39;);	//输出1 2

	//num7:调用类方法传入参数
	class a(){
		function b($c){
			echo $c;
		}
	}

	call_user_func(array(&#39;a&#39;,&#39;b&#39;),&#39;1&#39;);	//输出1

	//num8:call_user_func_array与call_user_func很相似,只不过换了一种方式传递参数,让参数结构更清晰:
	function a($b,$c){
		echo $b;
		echo $c;
	}

	call_user_func_array(&#39;a&#39;,array(&#39;1&#39;,&#39;2&#39;));	//输出1 2

	//num9:用call_user_func_array调用类内部方法
	class A(){
		function a($b,$c){
			echo $b;
			echo $c;
		}
	}
	
	call_user_func_array(array(&#39;A&#39;,&#39;a&#39;),array(&#39;1&#39;,&#39;2&#39;));	//输出1 2

	//num10:call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:
	function a($b){
		$b++;
	}
	$c=0;
	call_user_func(&#39;a&#39;,$c);	//输出1
	call_user_func(&#39;a&#39;,array($c));	//输出2
Copier après la connexion


2 Pseudo variables

$ en php... Il est une pseudo variable, ce qui signifie etc. Ce nom de variable est utilisé lorsqu'une fonction peut accepter n'importe quel nombre de paramètres.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal