public function indexOf(self $str, $offset = 0, MStringComparison $cmp = null){
		
		if(!$this->offsetExists($offset)){
			throw new \OutOfRangeException('$offset is invalid');
		}
		
		if($cmp === null || $cmp->Value === MStringComparison::CASE_SENSITIVE){
			$index = \mb_strpos($this->_Value, $str->_Value, $offset, $this->_Encoding);
		}
		else{
			$index = \mb_stripos($this->_Value, $str->_Value, $offset, $this->_Encoding);
		}
		
		return $index !== false ? $index : static::NO_INDEX;
		
	}
public function indexOf(self $str, $offset = 0, MStringComparison $cmp = null){
		
		if(!$this->offsetExists($offset)){
			throw new \OutOfRangeException('$offset is invalid');
		}
		
		if($cmp === null || $cmp->Value === MStringComparison::CASE_SENSITIVE){
			$index = \mb_strpos($this->_Value, $str->_Value, $offset, $this->_Encoding);
		}
		else{
			$index = \mb_stripos($this->_Value, $str->_Value, $offset, $this->_Encoding);
		}
		
		return $index !== false ? $index : static::NO_INDEX;
		
	}
public function indexOf ( self $ str , $ offset = 0 , MStringComparison $ cmp = null ) { if ( ! $ this -> offsetExists ( $ offset ) ) { throw new \ OutOfRangeException ( '$offset is invalid' ) ; } if ( $ cmp === null || $ cmp -> Value === MStringComparison :: CASE_SENSITIVE ) { $ index = \ mb_strpos ( $ this -> _Value , $ str -> _Value , $ offset , $ this -> _Encoding ) ; } else { $ index = \ mb_stripos ( $ this -> _Value , $ str -> _Value , $ offset , $ this -> _Encoding ) ; } return $ index !== false ? $ index : static :: NO_INDEX ; }
Returns the index of a given string in this string
@param self $str string to search for
@param type $offset where to start searching, default is 0
@param MStringComparison $cmp default is null, case sensitive
@return int -1 for no index found
Returns the index of a given string in this string