<?php
// array_walk() array_map() array_filter()
// 可以使用用户自定义的函数对数组中的每个元素做回调处理 成功返回true 失败返回false
$fruits = array('a'=>'apple','b'=>'banana',
'o'=>'orange','l'=>'lemon');
$fav = 'orange';
function test(&$item,$key,$prefix)
{
$item = "$prefix:$key=>$item";
}
array_walk($fruits,'test','fruit');
echo '<pre>';
print_r($fruits);
echo '<hr>';
// 2.(简化)
array_walk($fruits,function(&$item,$key,$prefix)
{
$item = "$prefix:$key=>$item";
$item = "$prefix:$key=>$item";
$item = "$prefix:$key=>$item";
$item = "$prefix:$key=>$item";
},'fruit');
echo '<pre>',
print_r($fruits);
// array_map(callback,arr1,arr2...)
// 返回是回调处理后的数组
$arr = array_map(function($v){
if($v>25) return $v;
},[25,12,521,58,556]);
echo '<pre>';
print_r($arr);
// 使用array_filter()使用回调函数过滤数组的元素 返回是过滤后的数组
$arr = array_filter($arr);
print_r($arr);
// array_values()给数组的键重新排序,从0递增
$arr = array_values(array_filter($arr));
print_r($arr);
// 使用array_filter一次性完成筛选 然后使用array_values()键从0递增排序的结果
$res = array_values(array_filter([25,12,521,58,556],function($v){
return $v>25;
}));
echo '<pre>';
print_r($res);
//
?>
<?php
// 1.变量 实现数据的复用 函数是实现代码块的复用
// 2.类是具有相同属性和方法的对象集合
// 3.对象是复合数据类型
// 4.oop 三大特性:封装 继承 多态
// 5.封装:隐藏对象的属性或方法(实现细节),目的是为了控制在程序中属性的读或者修改的访问级别,使用者只需要通过外部接口以特定的权限来使用类成员
class Player{
// 成员属性 前一定要有 访问修饰符 public protected private
public $name;//抽象属性 null
public $height;
public $team;
// protected只能被本类和子类访问
protected $playNump = 18;
// 只能被本类访问
private $weight;
// 如何给 protected private属性赋值
// __construct()魔术方法构造函数 构造器 类实例化一次就被自动调用一次
// __get __set __call __callStatic
public function __construct($name,$height,$team,
$playNump,$weight)
{
// 1.初始化类成员 让类/实例化的状态稳定下来
// 2.给对象属性进行初始化赋值
// 3.可以给私有成员,受保护的成员初始化赋值
$this->name = $name;
$this->height = $height;
$this->team = $team;
$this->playNump = $playNump;
$this->weight = $weight;
}
public function jog()
{
// $this 本对象
return "$this->name is jogging,whose playNum is $this->playNump<br>";
}
public function shoot()
{
return "$this->name is shooting,weighing
$this->weight<br>";
}
}
// // 类的实例化 new $j对象引用
// $jordan = new Player;
// $james = new Player;
// //对象成员的访问 对象引用->属性名称/方法名称()
// $jordan->name = 'xiaoqi';
// $james->name = 'youyou';
// echo $james->name.'<br>';
// echo $james->jog();
// echo $jordan->name.'<br>';
// echo $jordan->jog();
// // echo $j->playNump
// $jordan = new Player('Jordan','205cm','Bulk',23,'80kg');
// echo $jordan->name.'<br>';
// echo $jordan->shoot();
?>
<?php
// 客户端代码 调用封装的类
// 1.加载类文件
require 'Player.php';
// 2.new 类的实例化
$o = new Player('Jordan','205cm','Bulk',23,'80kg');
echo $o->shoot();
?>
<?php
// 类的自动加载 前提 类名称与类文件名称保持一致
spl_autoload_register(function($className)
{
require $className .'.php';
});
// 2.new 类的实例化
$o = new Player('Jordan','205cm','Bulk',23,'80kg');
echo $o->shoot();
?>