当前位置 : 主页 > 编程语言 > 其它开发 >

08-11 作业 面对对象和自动加载 封装 继承 多态

来源:互联网 收集:自由互联 发布时间:2021-08-24
?php //array_map() 可以使用用户自定义的函数对数组中的每个元素做回调处理 成功返回true, 失败返回false $fruits =array('a'='apple','b'='banana','o'='ornge','1'='lemon'); $fav='orange'; function test($item,$key,

  1. <?php
  2.  
  3. //array_map() 可以使用用户自定义的函数对数组中的每个元素做回调处理 成功返回true, 失败返回false
  4. $fruits =array('a'=>'apple','b'=>'banana','o'=>'ornge','1'=>'lemon');
  5. $fav='orange';
  6.  
  7. function test(&$item,$key,$prefix){
  8. $item="$prefix:$key=>$item";
  9. }
  10. array_walk($fruits,'test','fruit');
  11. echo '<pre>';
  12.  
  13. print_r($fruits);
  14.  
  15. //arraya_map(callback,arr1,arr2 。。。)
  16. $arr = array_map(function($v){
  17. if($v>25) return $v;
  18. },[25,12,521,58,556]);
  19. echo '<pre>';
  20. print_r($arr);
  21.  
  22. //使用array_filter()使用回调函数过滤数组的元素 返回是过滤后的数组
  23. /*$arr=array_filter($arr);
  24. print_r($arr);*/
  25.  
  26. //array_values()给数组的键重新排序,从0递增
  27. var_dump($arr =array_values(array_filter($arr)));
  28.  
  29.  
  30. ob_clean();
  31. $a=[25,12,521,58,556];
  32. $res=array_values( array_filter($a,function($b){
  33. return $b>25;
  34. }));
  35. echo '<pre>';
  36. print_r($res);
  37.  
  38. <?php
  39. /*
  40. * 1.变量 实现数据的复用 函数是实现代码块的复用
  41. * 2.类是具有相同属性和方法的对象的集合
  42. * 3.对象是复合数据类型
  43. * 4.oop三大特性 封装 继承 多态
  44. * //封装:隐藏对象的属性或方法(实现细节),目的是为了控制在程序中属性的读或者修改的访问级别,使用者只需要通过外部接口 以特定的权限来使用类成员
  45. *
  46. * */
  47.  
  48. class Player{
  49. //成员属性 前一定要有访问修饰符 public protected private
  50. public $name; //抽象属性 null
  51. public $height;
  52. public $team;
  53.  
  54. //protected 只能被本类和子类访问
  55. protected $playNum=23;
  56. private $weight;
  57. public function jog(){
  58. return "$this->name is jogging,whose playNum is $this->playNum<br>";
  59. }
  60. public function shoot(){
  61. return "$this->name is shooting weighing $this->height"; }
  62. //__construct
  63.  
  64. public function __construct($name,$height,$team,$playNum,$weight){
  65. $this->name=$name;
  66. $this->height=$height;
  67. $this->team=$team;
  68. $this->playNum=$playNum;
  69. $this->weight=$weight;
  70.  
  71. }
  72. }
  73. //类的实例化 new $j对象引用
  74. /* $jordan=new Player;
  75. $james=new Player;
  76. 对象成员的访问 对象引用 -》属性名称/方法名称()
  77. $jordan->name ='Jordan';
  78. $james ->name ='James';
  79. echo $jordan->name.'<br>';
  80. echo $jordan->jog();
  81.  
  82. echo $james->name.'<br>';
  83. echo $james->jog();*/
  84. $jordan = new Player('Jordan','203cm','bulk',23,'80KG');
  85. echo $jordan->name.'<br>';
  86. echo $jordan->shoot();
  87. <?php
  88. //客户端代码 调用封装的类
  89. //1.加载类文件
  90. //require '5.php';
  91. //类的自动加载
  92. spl_autoload_register(function($className){
  93. require $className.'.php';
  94. });
  95.  
  96.  
  97.  
  98. //2.new类的实例化
  99. $j= new User('Jordan','203CM','Bulk',23,'80kg');
  100. echo $j->shoot();
网友评论