DataArray.php
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
namespace Lib\Imap;
/**
* 数据
* @author:dc
* @time 2024/9/21 9:27
* Class DataArray
* @package Lib\Imap
*/
class DataArray {
/**
* 存储的数据
* @var array
*/
private array $attribute = [];
/**
* @param string $name
* @param mixed $val
* @param bool $append
* @author:dc
* @time 2024/9/21 9:33
*/
public function set(string $name, mixed $val, bool $append = false): void
{
$name = strtolower($name);
if($append && is_string($val) && $this->get($name)!==null ){
$this->attribute[$name] .= $val;
}else{
$this->attribute[$name] = $val;
}
}
/**
* @param string $name
* @return mixed
* @author:dc
* @time 2024/9/21 9:34
*/
public function get(string $name): mixed
{
if(isset($this->attribute[$name])){
return $this->attribute[$name];
}
foreach ($this->attribute as $key=>$value){
// 不区分大小写对比
if(strcasecmp($key,$name)===0){
return $value;
}
}
return '';
}
/**
* 不区分大小写比较字符串
* @param string $name
* @param mixed $value
* @return bool
* @author:dc
* @time 2024/9/21 9:57
*/
public function eq(string $name,mixed $value):bool {
return strcasecmp($this->get($name),$value) === 0;
}
public function __get(string $name): mixed
{
return $this->get($name);
}
public function __set(string $name, $value): void
{
$this->set($name,$value);
}
}