appserver-io / lang
提供基本 PHP 数据类型的 Lang 包实现。
Requires
- php: >=5.4.0
- herrera-io/annotations: 1.0.*
Requires (Dev)
- appserver-io/build: ~2.0
README
简介
本包提供了基本 PHP 数据类型的实现。
问题
为了集中精力,我们希望将有关此包的所有问题收集到 主项目仓库的问题跟踪器 中。请将原始存储库作为问题标题的第一个元素进行引用,例如:[appserver-io/<ORIGINATING_REPO>] 我遇到的问题
使用方法
本包提供了一些基本数据类型的面向对象实现类。
由于关于 PHP 和类型安全性的讨论很多(现在仍然很多),我决定实现一个小型的、真正的基本库,它将提供几乎所有项目中需要的最基本的数据类型。说实话,我真的很喜欢像 Java 这样的语言提供的几乎所有那些非常好的可能性,但既然 PHP 不是 Java,你总是需要找到一种既体面又在 PHP 环境中合理的方法来实现类似的事情。
实现这些类的意图是,通过使用它们进行类型提示,并有可能快速方便地进行数据验证机制,使你的关键函数和方法能够进行类型安全。
正如你所知,使用类型提示可能会稍微减慢你的代码速度,所以当你使用它们时要注意,并定期进行性能测试以监控可能的影响。
本库将提供以下数据类型实现:
- Objct
- Boolean
- Integer
- Flt
- Strng
以下示例将简要介绍每个类将提供的功能以及如何在代码中使用它们。请注意,示例不是有意要说明任何具体内容,它们只是给你一个大概的想法。
Objct(5.0 版本之前的 Object)
Objct
抽象类实现了类的基本表示。本库中的所有其他类都将其用作超类。
Boolean
使用 Boolean
实例与其他实例进行比较或尝试使用非布尔值实例化它。
// initialize a new Integer instance $bool = new Boolean(true); $bool->equals(new Boolean(false)); // false // throws a ClassCastException $invalid = new Boolean('aValue');
Integer
以下是如何使用 Integer
类的一些示例
// initialize a new Integer instance $int = new Integer(17); // get the float value of the Integer echo $int->floatValue() . PHP_EOL; // 17.0 echo $int->stringValue() . PHP_EOL; // '17' // check that the two Integer instances are equal $int->equals(Integer::valueOf(new String('17'))); // true
Flt(3.0 版本之前的 Float)
使用 Flt
的示例展示了如何向实例中添加值并打印浮点值
// initialize a new Float instance $float = new Flt(10.005); $float->add(new Flt(10.105)); // check the value echo $float->floatValue() . PHP_EOL; // 20.11
Strng(3.0 版本之前的 String)
为了展示如何使用 Strng
类,我们将简单地连接实例
// initialize a new String instance $string = new Strng('value to'); // check that String was successfully concatenated echo $string->concat(new Strng(' search')) . PHP_EOL; // 'value to search'
是的,这些示例确实很简单,就像我之前说的那样,在大多数情况下,我会使用这些类来进行类型提示等简单操作。
如果你也想使用这些功能,请随意实现自己的类型,并将拉取请求发给我 :)
外部链接
- 文档在 appserver.io