PHP 재귀 기능의 예기치 않은 출력 : 간단한 추가 기능이 '8'대신 '85'를 인쇄하는 이유는 무엇입니까?
PHP 재귀 기능에 대한 자세한 설명 : 추가 기능의 예기치 않은 출력 분석
이 기사는 PHP 재귀 기능의 예를 분석하여 출력 결과가 기대치와 일치하지 않는 이유를 설명합니다. 코드는 다음과 같습니다.
php 함수 sd ($ a = 3, $ b = 2) { $ c = $ a $ b; if ($ c
함수 sd()
두 개의 매개 변수 a
와 b
허용하고 기본값은 각각 3과 2입니다. 함수는 a
와 b
의 합을 계산하고 값을 c
에 할당합니다. c
6 미만인 경우 재귀 적으로 스스로 호출하고 a
와 새로운 c
값을 매개 변수로 전달하십시오. 마지막으로 함수는 c
의 값을 인쇄합니다.
sd()
실행 한 후 출력 결과는 예상 "8"보다는 "85"입니다. 이는 echo
호출 순서를 이해하는 데 편견이 있기 때문입니다.
프로그램 실행 프로세스는 다음과 같습니다.
-
sd()
에 대한 첫 번째 호출은a=3
,b=2
,c = 3 2 = 5
라고합니다.c 이므로 함수는 자체를 재귀 적으로 호출하고 매개 변수는 <code>sd(3, 5)
가됩니다. - 재귀 호출에서
a=3
,b=5
,c = 3 5 = 8
. 이때c >= 6
, 재귀는 종료됩니다.echo $c;
인쇄 8. - 프로그램은 첫 번째 통화
sd()
호출되는 위치로 돌아갑니다.echo $c;
첫 번째 호출 (5)에서c
값을 인쇄합니다.
따라서 최종 출력은 "85"입니다. 변수 c
덮어 쓰지 않은 것이 아니라 echo
문이 함수의 끝에 있고 재귀가 끝날 때마다 실행되므로 두 개의 인쇄물이 생깁니다.
결과 "8"을 얻으려면 if
조건 문에 echo
명령문을 배치하거나 재귀 종료시에만 최종 결과를 인쇄하는 것과 같은 기능 논리를 수정해야합니다. 수정 된 코드는 다음과 같습니다.
php 함수 sd ($ a = 3, $ b = 2) { $ c = $ a $ b; if ($ c
이 수정 된 버전은 return
문을 사용하여 c
의 값을 반환하여 재귀가 끝난 후에 만 최종 결과가 인쇄되도록합니다.
위 내용은 PHP 재귀 기능의 예기치 않은 출력 : 간단한 추가 기능이 '8'대신 '85'를 인쇄하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











Root로 MySQL에 로그인 할 수없는 주된 이유는 권한 문제, 구성 파일 오류, 암호 일관성이 없음, 소켓 파일 문제 또는 방화벽 차단입니다. 솔루션에는 다음이 포함됩니다. 구성 파일의 BAND-ADDRESS 매개 변수가 올바르게 구성되어 있는지 확인하십시오. 루트 사용자 권한이 수정 또는 삭제되어 재설정되었는지 확인하십시오. 케이스 및 특수 문자를 포함하여 비밀번호가 정확한지 확인하십시오. 소켓 파일 권한 설정 및 경로를 확인하십시오. 방화벽이 MySQL 서버에 연결되는지 확인하십시오.

백업 또는 트랜잭션 롤백 메커니즘이없는 한 데이터베이스에서 직접 삭제 된 행 복구는 일반적으로 불가능합니다. 키 포인트 : 거래 롤백 : 트랜잭션이 데이터를 복구하기 전에 롤백을 실행합니다. 백업 : 데이터베이스의 일반 백업을 사용하여 데이터를 신속하게 복원 할 수 있습니다. 데이터베이스 스냅 샷 : 데이터베이스의 읽기 전용 사본을 작성하고 데이터를 실수로 삭제 한 후 데이터를 복원 할 수 있습니다. 주의해서 삭제 명령문을 사용하십시오. 실수로 데이터를 삭제하지 않도록 조건을주의 깊게 점검하십시오. WHERE 절을 사용하십시오 : 삭제할 데이터를 명시 적으로 지정하십시오. 테스트 환경 사용 : 삭제 작업을 수행하기 전에 테스트하십시오.

해시 값으로 저장되기 때문에 MongoDB 비밀번호를 Navicat을 통해 직접 보는 것은 불가능합니다. 분실 된 비밀번호 검색 방법 : 1. 비밀번호 재설정; 2. 구성 파일 확인 (해시 값이 포함될 수 있음); 3. 코드를 점검하십시오 (암호 하드 코드 메일).

MariaDB 용 Navicat은 암호가 암호화 된 양식으로 저장되므로 데이터베이스 비밀번호를 직접 볼 수 없습니다. 데이터베이스 보안을 보장하려면 비밀번호를 재설정하는 세 가지 방법이 있습니다. Navicat을 통해 비밀번호를 재설정하고 복잡한 비밀번호를 설정하십시오. 구성 파일을 봅니다 (권장되지 않음, 위험이 높음). 시스템 명령 줄 도구를 사용하십시오 (권장되지 않으면 명령 줄 도구에 능숙해야 함).

MySQL을 우아하게 설치하는 열쇠는 공식 MySQL 저장소를 추가하는 것입니다. 특정 단계는 다음과 같습니다. 피싱 공격을 방지하기 위해 MySQL 공식 GPG 키를 다운로드하십시오. MySQL 리포지토리 파일 추가 : rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum repository cache : yum 업데이트 설치 mysql : yum 설치 mysql-server startup startup mysql 서비스 : systemctl start mysqlctl start mysqlctl.

Centos는 2024 년에 상류 분포 인 RHEL 8이 종료 되었기 때문에 폐쇄 될 것입니다. 이 종료는 CentOS 8 시스템에 영향을 미쳐 업데이트를 계속받지 못하게합니다. 사용자는 마이그레이션을 계획해야하며 시스템을 안전하고 안정적으로 유지하기 위해 Centos Stream, Almalinux 및 Rocky Linux가 포함됩니다.

MySQL의 킬 명령은 프로세스의 특별한 상태와 부적절한 신호 레벨로 인해 때때로 실패합니다. MySQL 프로세스를 효과적으로 종료하는 방법에는 다음이 포함됩니다. 프로세스 상태 확인, MySQLADMIN 명령 (권장) 사용, 킬 -9를주의해서 사용하고 시스템 리소스 확인 및 오류 로그의 심층 문제 해결 문제가 포함됩니다.

요약 : Navicat은 SQLITE 비밀번호를 볼 수 없습니다. SQLITE에는 기존 비밀번호 필드가 없습니다. SQLITE의 보안은 파일 시스템 권한 제어에 의존합니다. 파일 암호를 잊어 버린 경우 검색 할 수 없습니다 (데이터베이스가 암호화되지 않으면 키가 필요합니다).
