diff --git a/src/Strings/Multibyte/OmniString.php b/src/Strings/Multibyte/OmniString.php index d4f7d3e..28559e6 100644 --- a/src/Strings/Multibyte/OmniString.php +++ b/src/Strings/Multibyte/OmniString.php @@ -1,76 +1,80 @@ value = $value; $this->setEncoding($encoding ?: "UTF-8"); } /// /// Magic methods /// public function __toString() : string { return $this->value; } /// /// Helper methods /// public function pad( int $padLength = 0, string $padString = ' ', int $padType = STR_PAD_RIGHT ) : string { return (new StringPad) ->setInput($this->value) ->setEncoding($this->encoding) ->setPadLength($padLength) ->setPadString($padString) ->setPadType($padType) ->pad(); } public function startsWith (string $start) : bool { return StringUtilities::startsWith($this->value, $start); } public function endsWith (string $end) : bool { return StringUtilities::endsWith($this->value, $end); } + public function len () : int { + return mb_strlen($this->value, $this->encoding); + } + /** * @return string */ public function getValue () : string { return $this->value; } /** * @param string $value */ public function setValue (string $value) { $this->value = $value; } } diff --git a/tests/Strings/Multibyte/OmniStringTest.php b/tests/Strings/Multibyte/OmniStringTest.php index ee72c2e..d9b30da 100644 --- a/tests/Strings/Multibyte/OmniStringTest.php +++ b/tests/Strings/Multibyte/OmniStringTest.php @@ -1,48 +1,52 @@ string = new OmniString("foo"); } public function testToString () : void { $this->assertEquals("foo", (string)$this->string); $this->assertEquals("foo", $this->string->__toString()); } public function testPad () : void { $paddedString = $this->string->pad(9, '-=-', STR_PAD_BOTH); $this->assertEquals("-=-foo-=-", $paddedString); } public function testStartsWith () : void { $this->assertTrue($this->string->startsWith("fo")); $this->assertTrue($this->string->startsWith("")); $this->assertTrue($this->string->startsWith("foo")); $this->assertFalse($this->string->startsWith("Fo")); $this->assertFalse($this->string->startsWith("bar")); } public function testEndsWith () : void { $this->assertTrue($this->string->endsWith("oo")); $this->assertTrue($this->string->endsWith("")); $this->assertTrue($this->string->endsWith("foo")); $this->assertFalse($this->string->endsWith("oO")); $this->assertFalse($this->string->endsWith("bar")); } + public function testLen () : void { + $this->assertEquals(3, $this->string->len()); + } + }