개발 서버가 32 비트이기 때문에 프로덕션 서버가 64 비트이기 때문에 프로덕션 서버를 옮길 때 문제가 발생합니다 (쿠분투 12.04 64 비트를 실행 중입니다). 내 질문은. PHP의 23 비트 버전을 설치하지 않고 int가 32 비트가되도록 강제 할 수 있습니까? 최대 정수 값을 선택할 수있는 라이브러리 또는 라이브러리64 비트 PHP 설치시 32 비트 정수를 사용하는 방법은 무엇입니까?
답변
정수는 해당 플랫폼의 포인터 크기입니다. (32 비트 PHP -> 32 비트 정수, 64 비트 PHP -> 64 비트 정수).
정수 연산이 오버플로되면 변수가 부동 상태가됩니다. PHP documentation은이 모든 것을 잘 설명합니다.
정수에서 어떤 크기인지 신경 써야하는 코드에서 무엇을하는지 확신 할 수 없습니다. 그러나 32 비트의 값만 신경 쓰면 항상 낮은 32 비트를 마스크 할 수 있습니다.
'$ val = $ something & 0xFFFFFFFF; '이 줄이 내 덕분에 나았어! – fnkbz
하나의 경우는 CRC32에서 빌드를 사용하지 않고 CRC32를 계산하는 경우입니다. 예를 들어 제 경우와 같이 한 번에 1 바이트 씩 수행해야합니다. 여기에 꽤 큰 정수를 곱하면 64 비트 시스템에서도 부호가있는 32 비트 정수처럼 동작해야합니다. –
- 1. 64 비트 JVM을 사용하는 32 비트 라이브러리
- 2. 32 비트/64 비트 OS?
- 3. 32 비트 및 64 비트 DSN을 동시에 사용하는 방법은 무엇입니까?
- 4. 64 비트 시스템에서 32 비트 Python의 virtualenv를 사용하는 방법은 무엇입니까?
- 5. 32 비트 및 64 비트 모두 Java 설치시
- 6. 32 비트 64 비트 호환
- 7. 32 비트 부호없는 정수를 사용하여 64 비트 수를 곱하는 알고리즘
- 8. 32 비트 MS 사무용 64 비트 OS
- 9. C++에서 32 비트 정수와 64 비트 정수를 안전하게 비교하고 부호있는 정수를 내부적으로 비교하는 방법은 무엇입니까?
- 10. 포트란 : 32 비트/64 비트 성능 이식성
- 11. 32 비트 정수를 XORing
- 12. 64 비트 브라우저가있는 32 비트 드라이버
- 13. 64 비트 컴퓨터에서 32 비트 Python 컴파일
- 14. 32 비트 데이터베이스의 64 비트 버전 만들기
- 15. 32 비트 및 64 비트 설치 프로젝트
- 16. 우분투 64 비트 또는 32 비트?
- 17. MySQL 32 비트 또는 64 비트 - Apache 32 비트 Windows 64 비트?
- 18. 32 비트 MySQL을 64 비트 MS 액세스에 연결하는 방법은 무엇입니까?
- 19. 32 비트 및 64 비트 CPU/OS
- 20. 32 비트 NTDLL 구조를 64 비트 구조로 변환하는 방법은 무엇입니까?
- 21. 두 개의 32 비트 정수를 C에서 64 비트로 사용하려면 어떻게해야합니까?
- 22. PHP에 64 비트 정수를 저장하는 방법은 무엇입니까?
- 23. 32 비트 정수를 10 비트 정수로 해시하는 방법은 무엇입니까?
- 24. 32 비트 및 64 비트 프로세스에서 작동해야하는 64 비트 라이브러리
- 25. 64 비트 코드에서 32 비트 DLL에 액세스
- 26. 64 비트 OS/32 비트 프로세스
- 27. 32 비트 라이브러리를 64 비트 프로그램에 연결
- 28. Office의 32 비트 DLL 64 비트
- 29. 64 비트 컴퓨터에서 32 비트 DLL 사용
- 30. 64 비트 시스템의 32 비트 호환성 라이브러리
아니요. PHP는 그런 식으로 변수를 제어하지 않습니다. var를 "short"또는 "int"또는 "unsigned"로 만들 수 없습니다. 정수, 문자열, 객체, 배열 만 있습니다. 32 비트 버전의 PHP를 설치할 이유가 없습니다. 여러 개의 독립적 인 PHP 설치가 가능합니다. –
int가 32 비트 일 필요가있는 PHP 코드에서 어떤 종류의 작업을 수행합니까? –
int (setter 함수 사용)가 32 비트 정수 수치 제한 (2,147,483,647)을 초과하지 않도록 제한 할 수 있습니다. 따라서 일반 정수를 그 이상으로 설정하면 예외를 throw 할 수 있습니다. 물론 이것은 절대 안전한 것은 아닙니다. 또한 PHP는 여전히 64 비트 정수를위한 모든 공간을 예약하기 때문에 아마도 메모리를 얻지 못할 것입니다. 마지막으로 할 수있는 일은 체인 된'char's가있는 32 비트 정수를 나타내는 클래스를 만드는 것입니다.하지만 이것은 64 비트 정수를 사용하는 것 이상의 이점을 얻지 못할 것입니다. –