当前位置:首页 > CN2资讯 > 正文内容

php的SPL(Standard PHP Library)简介

9小时前CN2资讯

SPL(Standard PHP Library)简介

php5以后的版本引入了SPL(Standard PHP Library)。这个库定义了很多有用的接口和类以及少量函数(例如spl_autoload),功能非常强大。大家可以通过 print_r(spl_classes());来打印出自己的php版本所支持的所有spl类和接口。
目前已经有不少项目(例如ZF)应用了spl,所以学习spl是很有必要的。

这里介绍几个常用的spl类和接口。

一、Countable

count是php最常用的函数之一,在早期的php版本,count只能用于计算数组的单元数目,对于其他类型包括对象count的返回值都是 1(NULL除外,count(NULL)返回0),在php5以后,我们可以通过让对象实现Countable接口来定义count的调用。

Countable接口只有一个公用的成员方法count()。

举个例子:

<?php   
class A implements Countable   
{   
    private $var = array(1, 2, 3);   
       
    public function count()   
    {   
        return count($this->var);   
    }   
}   
$a = new A;   
echo count($a); 

<?php
class A implements Countable
{
    private $var = array(1, 2, 3);
    
    public function count()
    {
        return count($this->var);
    }
}
$a = new A;
echo count($a);
本例将输出 3 。

二、ArrayObject
ArrayObject是数组的封装类,它能够把数组转成对象存储。举个例子:

<?php   
$arr = array(   
    'a' => 1,   
    'b' => 'str',   
    'c' => array(1)   
);   
$obj = new ArrayObject($arr);   
var_dump($obj);   
$arr2 = $obj->getArrayCopy(); // 返回对象的公用成员变量数组   
print_r($arr2); 

<?php
$arr = array(
    'a' => 1,
    'b' => 'str',
    'c' => array(1)
);
$obj = new ArrayObject($arr);
var_dump($obj);
$arr2 = $obj->getArrayCopy(); // 返回对象的公用成员变量数组
print_r($arr2);
本例将输出:
object(ArrayObject)#1 (3) {
["a"]=>
int(1)
["b"]=>
string(3) “str”
["c"]=>
array(1) {
    [0]=>
    int(1)
}
}
Array
(
    [a] => 1
    [b] => str
    [c] => Array
        (
            [0] => 1
        )

)

三、IteratorAggregate
对象的原始迭代器接口是Iterator,不过这个接口定义的公用方法有好几个:
current()
key()
next()
rewind()
valid()
用起来稍微有点不方便,所以spl同时提供了一个简化版的或者说集成版的迭代器接口IteratorAggregate。
这个接口只有一个公用方法
Iterator getIterator()
这个方法需要返回的是对象的Iterator。
上面提到的ArrayObject类就是实现了IteratorAggregate接口的,举个例子:

<?php   
class A implements IteratorAggregate   
{   
    private $var = array(1, 2, 3);   
       
    public function getIterator()   
    {   
        return new ArrayObject($this->var);   
    }   
}   
$a = new A();   
foreach ($a as $b) {   
    echo "$b ";   

<?php
class A implements IteratorAggregate
{
    private $var = array(1, 2, 3);
    
    public function getIterator()
    {
        return new ArrayObject($this->var);
    }
}
$a = new A();
foreach ($a as $b) {
    echo "$b ";
}
本例将输出:
1
2
3

查看更多的类和接口可以访问

http://www.php.net/~helly/php/ext/spl/


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/26438.html

    分享给朋友:

    “php的SPL(Standard PHP Library)简介 ” 的相关文章

    Racknerd 圣何塞 VPS:高性能、低延迟的托管解决方案

    Racknerd 公司简介 Racknerd 是一家国际性的互联网托管服务提供商,成立于2019年。虽然相对年轻,但它在短时间内赢得了不少用户的信赖。公司提供多种托管解决方案,包括虚拟主机、分销主机服务、基于KVM虚拟化技术的VPS产品、独立服务器租赁以及数据中心托管服务。Racknerd 的全球业...

    VPSCheap评测:低价VPS服务的最佳选择与性能分析

    VPSCheap的概述 我第一次听说VPSCheap的时候,是在一个热闹的VPS论坛上。这个成立于2010年的主机商,主要提供KVM型VPS服务,其特点是低价格和无限流量。从那以后,我对VPSCheap的关注逐渐加深。它的数据中心位于美国达拉斯,给不少用户带来了良好的使用体验。论坛上的用户在讨论各自...

    甲骨文云免费套餐与ARM CPU优势解析

    甲骨文云(Oracle Cloud)是一个强大的云服务平台,近年来受到了越来越多用户的关注。我自己也曾经探索过这个平台,在这里我想和大家聊聊甲骨文云的免费套餐,这对中小企业以及开发者来说真的是一个不错的选择。免费的套餐不仅简化了入门程序,也为新用户提供了足够的资源来尝试不同的云服务。 甲骨文云的免费...

    Host Winds:可再生能源的关键因素与未来发展潜力

    什么是 Host Winds? 在谈论可再生能源时,Host Winds 是一个不容忽视的概念。简单来说,Host Winds 指的就是那些发生在某一特定区域内的风速和风向。这些风的模式能够极大地影响一个地区的风力发电潜力。想象一下,如果你在一个风速稳定且方向一致的地区,那么利用这些风来发电就会更加...

    波测评分析及其在医疗与教育领域的重要性

    波测评的定义与重要性 波测评是一种重要的技术手段,专注于评估波动的特性和行为。我发现,这种测评方法在多个行业中都扮演了至关重要的角色,比如医疗、工业和电力等领域。以脑波测评为例,它不仅可以帮助医生了解病人的大脑状态,还能在教育领域评估学习能力。这些应用展示了波测评技术在科学与技术进步中的不可或缺性。...

    IPv6 测速方法与工具:提升网络体验的技巧

    IPv6 测速的基本概念 IPv6,作为互联网协议的最新版本,让我们在网络世界中畅游无阻。它的推出旨在解决IPv4所面临的地址枯竭问题,推进更加广泛的设备连接。简单来说,IPv6提供了更大的地址空间,能够支持越来越多的设备上线。因为万物互联的时代已经来临,我们的手机、电脑、家居设备甚至汽车都需要连接...