codemasher 5 년 전
부모
커밋
cae601fff6
1개의 변경된 파일5개의 추가작업 그리고 6개의 파일을 삭제
  1. 5 6
      src/Data/Number.php

+ 5 - 6
src/Data/Number.php

@@ -14,7 +14,7 @@ namespace chillerlan\QRCode\Data;
 
 use chillerlan\QRCode\QRCode;
 
-use function ord, sprintf, substr;
+use function ord, sprintf, str_split, substr;
 
 /**
  * Numeric mode: decimal digits 0 to 9
@@ -59,13 +59,12 @@ final class Number extends QRDataAbstract{
 	 */
 	protected function parseInt(string $string):int{
 		$num = 0;
-		$len = strlen($string);
 
-		for($i = 0; $i < $len; $i++){
-			$c = ord($string[$i]);
+		foreach(str_split($string) as $chr){
+			$c = ord($chr);
 
-			if(!isset($this::CHAR_MAP_NUMBER[$string[$i]])){
-				throw new QRCodeDataException(sprintf('illegal char: "%s" [%d]', $string[$i], $c));
+			if(!isset($this::CHAR_MAP_NUMBER[$chr])){
+				throw new QRCodeDataException(sprintf('illegal char: "%s" [%d]', $chr, $c));
 			}
 
 			$c   = $c - 48; // ord('0')