PHP字符串单字气节作――substr真的好慢
PHP字符串单字节操作――substr真的好慢
当我们要操作字符串中的某一个单字节时,我们该使用什么样的方式操作?一直以为,substr函数不会很慢。但今天测试了一下,结果并非如此。以下是测试代码:
?
<?php $str='abcdefghijklmnopqrstuvwxyz1234567890'; error_reporting(E_ALL); /** * Simple function to replicate PHP 5 behaviour */ function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } //使用substr函数 $start=microtime_float(); for ($k = 100; $k > 0; $k--) { for ($i=0;$i<strlen($str);$i++) echo substr($str,$i,1), ' '; } $end = microtime_float(); echo("<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> t i m e :" . round( $end - $start ,6) ."<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>"); //使用字节操作 $start=microtime_float(); for ($k = 100; $k > 0; $k--) { for ($i=0;$i<strlen($str);$i++) echo $str{$i}, ' '; } $end = microtime_float(); echo("<br/> <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>t i m e :" . round( $end - $start ,6) ."<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>"); //使用数组模式操作 $start=microtime_float(); for ($k = 100; $k > 0; $k--) { for ($i=0;$i<strlen($str);$i++) echo $str[$i], ' '; } $end = microtime_float(); echo("<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> t i m e :" . round( $end - $start ,6) ."<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>"); ?>
?以下是测试结果:
t i m e :0.003782
t i m e :0.002862
t i m e :0.002587
t i m e :0.00351
t i m e :0.002649
t i m e :0.002786
由此可见,substr速度是很慢的。而字节操作与数组操作模式,则是同一级别的。由此我们认为,如果对字符串进行字节操作,则使用字节操作模式最好,因为,这一方式不会导致误以为变量类型是数组。
当然,这种操作方式有其局限性,那就是对于中文字串是无法这样处理的,你只有使用mb_substr!!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











많은 사용자들이 스마트 시계를 선택할 때 Huawei 브랜드를 선택하게 됩니다. 그 중 Huawei GT3pro와 GT4가 가장 인기 있는 선택입니다. 두 제품의 차이점을 궁금해하는 사용자가 많습니다. Huawei GT3pro와 GT4의 차이점은 무엇입니까? 1. 외관 GT4: 46mm와 41mm, 재질은 유리 거울 + 스테인레스 스틸 본체 + 고해상도 섬유 후면 쉘입니다. GT3pro: 46.6mm 및 42.9mm, 재질은 사파이어 유리 + 티타늄 본체/세라믹 본체 + 세라믹 백 쉘입니다. 2. 건강한 GT4: 최신 Huawei Truseen5.5+ 알고리즘을 사용하면 결과가 더 정확해집니다. GT3pro: ECG 심전도, 혈관 및 안전성 추가

float의 최대값: 1. C 언어에서 float의 최대값은 3.40282347e+38입니다. IEEE 754 표준에 따르면 float 유형의 최대 지수는 127이고 가수의 자릿수는 23입니다. 이런 방식으로 최대 부동 소수점 수는 3.40282347 e+38입니다. 2. Java 언어에서 최대 부동 소수점 값은 3.4028235E+38입니다. Python 언어에서 최대 부동 소수점 값은 1.7976931348623157e+308입니다.

Windows 11에서 캡처 도구가 작동하지 않는 이유 문제의 근본 원인을 이해하면 올바른 솔루션을 찾는 데 도움이 될 수 있습니다. 캡처 도구가 제대로 작동하지 않는 주요 이유는 다음과 같습니다. 초점 도우미가 켜져 있습니다. 이렇게 하면 캡처 도구가 열리지 않습니다. 손상된 응용 프로그램: 캡처 도구가 실행 시 충돌하는 경우 응용 프로그램이 손상되었을 수 있습니다. 오래된 그래픽 드라이버: 호환되지 않는 드라이버가 캡처 도구를 방해할 수 있습니다. 다른 응용 프로그램의 간섭: 실행 중인 다른 응용 프로그램이 캡처 도구와 충돌할 수 있습니다. 인증서가 만료되었습니다. 업그레이드 프로세스 중 오류로 인해 이 문제가 발생할 수 있습니다. 이 문제는 대부분의 사용자에게 적합하며 특별한 기술 지식이 필요하지 않습니다. 1. Windows 및 Microsoft Store 앱 업데이트

1부: 초기 문제 해결 단계 Apple 시스템 상태 확인: 복잡한 솔루션을 살펴보기 전에 기본 사항부터 시작해 보겠습니다. 문제는 귀하의 기기에 있는 것이 아닐 수도 있습니다. Apple 서버가 다운되었을 수도 있습니다. Apple의 시스템 상태 페이지를 방문하여 AppStore가 제대로 작동하는지 확인하세요. 문제가 있는 경우 Apple이 문제를 해결하기를 기다리는 것뿐입니다. 인터넷 연결 확인: "AppStore에 연결할 수 없음" 문제는 때때로 연결 불량으로 인해 발생할 수 있으므로 인터넷 연결이 안정적인지 확인하십시오. Wi-Fi와 모바일 데이터 간을 전환하거나 네트워크 설정을 재설정해 보세요(일반 > 재설정 > 네트워크 설정 재설정 > 설정). iOS 버전을 업데이트하세요.

float의 정밀도는 소수점 이하 6~9자리까지 가능합니다. IEEE754 표준에 따르면 float 형식이 나타낼 수 있는 유효 자릿수는 약 6~9자리입니다. 이는 이론상 최대 정밀도일 뿐이며, 부동 소수점 숫자의 반올림 오류로 인해 float 유형의 정밀도가 낮아지는 경우가 많습니다. 컴퓨터에서 부동 소수점 연산을 수행할 때 부동 소수점 숫자의 정밀도 제한으로 인해 정밀도 손실이 발생할 수 있습니다. 부동 소수점 숫자의 정밀도를 향상시키기 위해 double 또는 long double과 같은 정밀도가 더 높은 데이터 유형을 사용할 수 있습니다.

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

일반적인 데이터베이스 부동 소수점 길이는 다음과 같습니다. 1. MySQL의 부동 소수점 유형 길이는 4바이트 또는 8바이트일 수 있습니다. 2. Oracle의 부동 소수점 유형 길이는 4바이트 또는 8바이트일 수 있습니다. 3. SQL Server의 부동 소수점 유형 길이는 다음과 같습니다. 4바이트로 고정됩니다. PostgreSQL에서 float 유형의 길이는 4바이트 또는 8바이트 등이 될 수 있습니다.

C 언어의 부동 소수점은 단정밀도 부동 소수점 숫자를 나타내는 데 사용되는 데이터 유형입니다. 부동 소수점 숫자는 과학적 표기법으로 표현되는 실수이며 매우 크거나 작은 값을 나타낼 수 있습니다. float형 변수는 소수점 이하 유효숫자 6자리의 값을 저장할 수 있습니다. C언어에서는 부동소수점 숫자를 연산하고 저장하는 데 사용할 수 있습니다. 실수는 정수형과 달리 소수점 이하의 숫자를 표현할 수 있고 소수에 대해 4가지 산술 연산을 수행할 수 있습니다.
