<commit_before>[attr()](http://twinh.github.com/widget/api/attr)
=================================================

获取数组或对象中指定键名的值

### 
```php
bool attr($data, $key )
```

##### 参数
* **$data** `string` 数组或对象
* **$key** `string` 转义的类型,目前支持html和js两种转义方式,默认是html


取值的顺序如下
1. 如果`$data`是数组或`\ArrayAccess`的实例化对象,检查并返回`$data[$key]`的值
2. 如果`$data`是对象,检查属性`$key`是否存在,存在则返回`$data->$key`的值
3. 如果`$data`是对象且方法`get. $key`存在,返回`$data->{'get' . $key}`
4. 如果以上均不存在,返回null

使用`attr()`微件的好处在于你不用关心要取值的变量类型,不管它是数组,对象数组(\ArrayAccess),还是
其他对象


##### 范例
随机获取数组或对象的值,并打印出来
```php
<?php

class Getter
{
    public function getKey()
    {
        return 'Get from Getter';
    }
}

$data = array(
    array(<commit_msg>updated list style and example description<commit_after>[attr()](http://twinh.github.com/widget/api/attr)
=================================================

获取数组或对象中指定键名的值

### 
```php
bool attr( $data, $key )
```

##### 参数
* **$data** `string` 数组或对象
* **$key** `string` 转义的类型,目前支持html和js两种转义方式,默认是html


取值的顺序如下

1. 如果`$data`是数组或`\ArrayAccess`的实例化对象,检查并返回`$data[$key]`的值
2. 如果`$data`是对象,检查属性`$key`是否存在,存在则返回`$data->$key`的值
3. 如果`$data`是对象且方法`get. $key`存在,返回`$data->{'get' . $key}`
4. 如果以上均不存在,返回null

使用`attr()`微件的好处在于你不用关心要取值的变量类型,不管它是数组,对象数组(\ArrayAccess),还是
其他对象


##### 范例
依次取出数组或对象的值,并打印出来
```php
<?php

class Getter
{
    public function getKey()
    {
        return 'Get from Getter';
    }
}

$data = array(
    array(
{'fraction_non_alphanumeric': 0.263859649122807, 'fraction_numerical': 0.005614035087719298, 'mean_word_length': 5.423423423423423, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6575001', 'n_tokens_mistral': 797, 'n_tokens_neox': 818, 'n_words': 89}