mcaskill / tokenlist
此包已被废弃,不再维护。未建议替代包。
StringTokenList 类表示一组由空格分隔的独立令牌。
dev-master
2016-02-24 19:53 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2020-09-06 00:37:05 UTC
README
StringTokenList
类表示一组由空格分隔的独立令牌。它提供了 PHP 数组的主要功能。主要区别在于 StringTokenList
- 只允许整数作为索引,
- 总是区分大小写,
- 并且排除重复值。
StringTokenList 类实际上是 PHP 对 DOMTokenList
JavaScript 接口的实现。
该类通过
DOMTokenList
DOMClassList
DOMRelList
安装
使用 Composer
$ composer require mcaskill/tokenlist
{ "require": { "mcaskill/tokenlist": "dev-master" } }
<?php require 'vendor/autoload.php'; use McAskill\TokenList\StringTokenList; printf( (string) ( new StringTokenList([ 'foo', 'baz', 'qux' ]) ) );
不使用 Composer
为什么你不使用 composer?下载仓库并将文件保存到你的项目路径中的某个位置。
<?php require 'path/to/StringTokenList.php'; require 'path/to/DOMTokenList.php'; use McAskill\TokenList\DOMTokenList; printf( ( new DOMTokenList([ 'foo', 'baz', 'qux' ]) )->attr() );
示例
请参阅每个类的源代码以获取更多使用示例。
示例 #1 基本用法
<?php $obj = new StringTokenList; $obj->add('foo baz qux'); var_dump( $obj->value ); $obj->add([ 'foo', 'not', 'qux', 'xor' ]); var_dump( $obj->value ); $obj->remove([ 'foo', 'qux' ]); var_dump( $obj->value ); $obj->replace( 'not', 'and' ); var_dump( $obj->value ); $obj->toggle( 'foo' ); var_dump( $obj->value ); $obj->toggle( 'foo' ); var_dump( $obj->value ); var_dump( $obj->contains('and') ); var_dump( $obj->item(1) ); var_dump( (string) $obj ); var_dump( count( $obj ) ); // Equivalent to $obj->count();
上述示例将输出类似以下内容
array (
0 => 'foo',
1 => 'baz',
2 => 'qux',
)
array (
0 => 'foo',
1 => 'baz',
2 => 'qux',
3 => 'not',
4 => 'xor',
)
array (
0 => 'baz',
1 => 'not',
2 => 'xor',
)
array (
0 => 'baz',
1 => 'and',
2 => 'xor',
)
array (
0 => 'baz',
1 => 'and',
2 => 'xor',
3 => 'foo',
)
array (
0 => 'baz',
1 => 'and',
2 => 'xor',
)
bool(true)
string(3) "xor"
string(11) "baz xor and"
int(3)
示例 #2 语法糖
<?php $obj = new StringTokenList; $obj[] = 'foo'; // Equivalent to $obj->add('foo'); $obj['baz'] = true; // Equivalent to $obj->add('baz'); $obj['baz'] = false; // Equivalent to $obj->remove('baz'); unset( $obj['foo'] ); // Equivalent to $obj->remove('foo'); unset( $obj[0] ); // Equivalent to $obj->remove( $obj->item(0) ); $obj['foo'] = 'qux'; // Equivalent to $obj->replace('foo', 'qux'); isset( $obj['foo'] ); // Equivalent to $obj->contains('foo'); $obj['foo']; // Equivalent to $obj->contains('foo'); $obj[0]; // Equivalent to $obj->item(0);