<?php 
/** 
 *@package extendObj 
 *@author Tianfan<[email protected]> 
 *@license Apache License 2.0 
 *@varsion 0.0.2 
 *@description this package is a part of hawkphp  framework  v2(haven't released)  
 */ 
namespace hawkphp; 
 
class stringObj { 
 
    private $_string; 
 
    public function __toString(): string { 
        return $this->_string; 
    } 
 
    public function __construct(string $string) { 
        $this->_string = $string; 
    } 
 
    public function addCslashes(string $charList): stringObj { 
        return new stringObj(\addcslashes($this->_string, $charList)); 
    } 
 
    public function addslashes(string $charList): stringObj { 
        return new stringObj(\addslashes($this->_string, $charList)); 
    } 
 
    public function bin2hex(): stringObj { 
        return new stringObj(\bin2hex($this->_string)); 
    } 
 
    public function length(): intObj { 
        return new intObj(\strlen($this->_string)); 
    } 
 
    public function md5(bool $output = false): stringObj { 
        return new stringObj(\md5($this->_string, $output)); 
    } 
 
    public function substr(): stringObj { 
        $params = \func_get_args(); 
        return new stringObj(\substr($this->_string, ...$params)); 
    } 
 
    public function sha1(bool $output = false): stringObj { 
        return new stringObj(\sha1($this->_string, $output)); 
    } 
 
    public function chunkSplit(): stringObj { 
        $params = \func_get_args(); 
        return new stringObj(chunk_split($this->_string, ...$params)); 
    } 
 
    public function crc32(): intObj { 
        return new intObj(\crc32($this->_string)); 
    } 
 
    public function crypt(): stringObj { 
        $params = \func_get_args(); 
        return new stringObj(\crypt($this->_string, ...$params)); 
    } 
 
    public function echo(): void { 
        echo $this->_string; 
    } 
 
    public function explode($delimiter): arrayObj { 
        return new arrayObj(\explode($delimiter, $this->_string)); 
    } 
 
    public function rtrim(): stringObj { 
        //todo 
    } 
 
    public function trim(): stringObj { 
        //todo 
    } 
 
    public function ord(): intObj { 
        return new intObj(ord($this->_string)); 
    } 
 
    public function replace(string $repacement, string $replace, int $count = 1): stringObj { 
        return new stringObj(\str_replace($repacement, $replace, $this->_string, $count)); 
    } 
 
    public function isEmpty(): bool { 
        return empty($this->_string) ? true : false; 
    } 
 
    public function test(string $regexp): bool { 
        return \preg_match($regexp, $this->_string); 
    } 
 
    public function match(string $regexp, bool $matchAll = false): ?arrayObj { 
        $match = ""; 
        if ($matchAll == false) { 
            if (\preg_match($regexp, $this->_string, $match)) { 
                return new arrayObj($match); 
            } else { 
                return false; 
            } 
        } elseif ($matchAll == true) { 
            if (\preg_match_all($regexp, $this->_string, $match) != 0) { 
                return new arrayObj($match); 
            } else { 
                return false; 
            } 
        } 
    } 
 
    public function jsonDecode(): object { 
        return \json_decode($this->_string, false); 
    } 
 
} 
 
 |