一、伪类型

PHP伪类型有三种,分别是:1,mixed混合类型。2,number数字类型。3,callback回调类型。

1,mixed混合类型:

mixed说明一个参数可以接受多种不同的类型,但并不是所有的类型。

2,number数字类型:

number参数可以接受integer整型和float浮点型。

3,callback回调类型:

例如call_user_func()函数就可接收用户自定义的函数作为一个参数,他是php的一个内置函数。callback函数不仅可以是一个函数,也可以是一个对象的方法,静态类的方法也可以。一个php函数用函数名字符串来传递,可以传递任何内置的或者用户自定义的函数,除了语言结构例如array(),echo(),empty(),eval(),exit(),isset(),list(),print(),unset()等。

如果要传入一个对象的方法,需要以数组的形式来传递,数组下标0是对象名,下标1是方法名。要是没有实例化为对象的静态类,要传递其方法,要将数组0下标指明的对象名换成该类的名称。

除了普通的用户定义的函数外,也可以使用create_function来创建一个匿名的回调函数。

示例::

[php] view plaincopy
  1. <?php
  2. //普通的回调函数
  3. function my_callback_function(){
  4. echo "my is callback function.";
  5. }
  6. //回调方法
  7. class MyClass{
  8. static function myCallbackMethod(){
  9. echo "my is callback method.";
  10. }
  11. }
  12. //num1:回调函数
  13. call_user_func('my_callback_function');
  14. //num2:静态类的方法
  15. call_user_func(array('MyClass','myCallbackMethod'));
  16. //num3:对象方法
  17. $obj = new MyClass();
  18. call_user_func(array($obj,'myCallbackMethod'));
  19. //num4:静态类的方法(5.3.0以上)
  20. call_user_func('MyClass::myCallbackMethod');
  21. //num5:相对静态方法调用
  22. class A {
  23. public static function who(){
  24. echo "A";
  25. }
  26. }
  27. class B extends A {
  28. public static function who(){
  29. echo "B";
  30. }
  31. }
  32. call_user_func(array('B','parent::who'));   //输出B
  33. //num6:调用时传入参数
  34. function test($a,$b){
  35. echo $a;
  36. echo $b;
  37. }
  38. call_user_function('test','1','2'); //输出1 2
  39. //num7:调用类方法传入参数
  40. class a(){
  41. function b($c){
  42. echo $c;
  43. }
  44. }
  45. call_user_func(array('a','b'),'1'); //输出1
  46. //num8:call_user_func_array与call_user_func很相似,只不过换了一种方式传递参数,让参数结构更清晰:
  47. function a($b,$c){
  48. echo $b;
  49. echo $c;
  50. }
  51. call_user_func_array('a',array('1','2'));   //输出1 2
  52. //num9:用call_user_func_array调用类内部方法
  53. class A(){
  54. function a($b,$c){
  55. echo $b;
  56. echo $c;
  57. }
  58. }
  59. call_user_func_array(array('A','a'),array('1','2'));    //输出1 2
  60. //num10:call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:
  61. function a($b){
  62. $b++;
  63. }
  64. $c=0;
  65. call_user_func('a',$c); //输出1
  66. call_user_func('a',array($c));  //输出2
[php] view plaincopy

二、伪变量

php中的$...为伪变量,表示等等的意思,当一个函数可以接受任意个参数时使用此变量名。

转载于:https://www.cnblogs.com/457248499-qq-com/p/7357793.html

PHP伪类型和伪变量相关推荐

  1. php伪类型,解密PHP伪类型和伪变量的含义

    伪类型是PHP 文档里用于表示参数可以使用的类型或者函数的返回类型. 它们不是 PHP 的数据类型. 只是文档说明,相当于注释. 所以理解的重点就是伪类型就是代码注释,用于说明函数的参数和返回类型的. ...

  2. php 数据类型伪类型,PHP之伪类型与变量

    本文档中使用的伪类型与变量 伪类型(pseudo -types)是PHP文档里用于指示参数可以使用的类型和值, 请注意,它们不是PHP语言里原生类型, 所以不能把伪类型用于自定义函数里面的类型约束(t ...

  3. 伪类和伪元素的区别,以及伪元素的妙用(上)

    伪类到底是什么呢,与伪元素又有啥关联呢 小白程序员-博客第二篇 说到伪类和伪元素呢,这里可能就跟读者们唠叨一下啦,伪类和伪元素到底有什么渊源呢,上面文章说到伪元素可以清除浮动,其实呀,伪元素的功能不止 ...

  4. CSS3伪类和伪元素的特性和区别

    前端er们大都或多或少地接触过CSS伪类和伪元素,比如最常见的:focus,:hover以及<a>标签的:link.visited等,伪元素较常见的比如:before.:after等. 其 ...

  5. 巧用伪元素和伪类让我们的html结构更清晰合理

    css3为了区分伪类和伪元素,伪元素采用双冒号写法. 伪类 -- :hover, :link, :active, :visited, :first-child, :last-child, nth-ch ...

  6. html5复合选择器,web前端练习31----Css,选择器(基本选择器,复合选择器,属性选择器,伪类,伪元素,优先级,雪碧图练习)...

    参考文档:https://man.ilovefishc.com/css3/ 一.基本选择器: 1通配符选择器 * 2元素选择器 element 3类选择器 .class 4id选择器 #id 5内联样 ...

  7. CSS之 :before :after的用法,伪类和伪元素的区别

    一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容.举例说明: .before:before ...

  8. 浅析SQL Server数据库中的伪列以及伪列的含义

    浅析SQL Server数据库中的伪列以及伪列的含义 原文:浅析SQL Server数据库中的伪列以及伪列的含义 本文出处:http://www.cnblogs.com/wy123/p/6833116 ...

  9. java的string访问某个元素_CSS伪类与伪元素总是傻傻分不清,这份总结够面试用了

    熟悉前端的人都会听过 css 的伪类与伪元素,然而大多数的人都会将这两者混淆.本文从解析伪类与伪元素的含义出发,区分这两者的区别,并且列出大部分伪类与伪元素的具体用法,即使你有用过伪类与伪元素,但里面 ...

最新文章

  1. clickhouse批量写入_交互式分析领域,为何 ClickHouse 能够杀出重围?
  2. R语言dplyr包为dataframe添加数据列实战( Add Columns):基于mutate()函数添加一个或者多个数据列(尾部添加、头部添加、条件生成、某个具体数据列的前后)
  3. 99%高精度、毫秒级延迟,AI便携式神经假肢让截肢14年患者运动自如
  4. Android --- 怎么样在布局中显示服务器的图片,或者是后台项目中的图片+connect failed: ECONNREFUSED (Connection refused)问题的解决(文章最后)
  5. P5459-[BJOI2016]回转寿司【树状数组】
  6. 解决在IDEA 的Maven下 出现 Cannot access in offline mode 问题
  7. 古典密码算法 java_古典密码算法的实现
  8. new Date()浏览器兼容性问题
  9. 这是目前为止5G最完整的PPT
  10. Windows 2008 R2 导出Excel时提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
  11. Atitit ide之道 开发工具之道 attilax著 v2 s22.docx Atitit ide开发工具之道 attilax总结 1. 代码编辑器功能 3 1.1. 关键词颜色 3 1.2.
  12. Solr完整个性化搜索排序方案
  13. canva画图 图片居中裁剪_html5 canvas 自定义画图裁剪图片
  14. Debian旧版本下载
  15. ElectronBot支线项目
  16. lammps一对一课程学习大纲
  17. Variable Rate Gradual Dutch Auctions:一种出售元宇宙虚拟土地的新方式
  18. python爬楼梯问题_用Python解决经典的爬楼梯问题
  19. php nette,thinkphp 采用nettemail发送邮件
  20. c语言对于随机数的产生于应用,c语言之产生随机数详解

热门文章

  1. editor 插入图片之后将光标放到右侧_通过vscode插件自动上传剪贴板图片至aws s3
  2. Android下的Linux
  3. python encoding报错_菜鸟世界 -docker 环境下解决python 的 UnicodeEncodeError 错误
  4. cvm服务器怎么建网站,云服务器cvm快速入门教程
  5. python自带模块连接数据库_Python模块Sqlite数据库模块
  6. win2003服务器的一些安全设置
  7. windows 10 安装和使用中5个常见问题
  8. CF809C(找规律+数位DP)
  9. Week04-面向对象设计与继承
  10. 分模块开发创建父工程——(六)