소개
$argc는 PHP 스크립트가 명령줄(커맨드 라인)에서 실행될 때만 사용할 수 있는 슈퍼글로벌(초전역) 변수입니다. 웹 서버의 문서 루트에서 HTTP 요청을 통해 실행될 때는 사용할 수 없습니다.
이 변수는 정수형이며, 현재 실행 중인 스크립트에 전달된 명령줄 인수의 개수를 나타냅니다. 스크립트 파일명 자체도 명령줄에 함께 입력되므로, $argc의 최솟값은 항상 1입니다.
또한 php.ini 설정 파일에서 register_argc_argv 지시어가 비활성화(off)되어 있으면 이 변수는 정의되지 않으니 주의해야 합니다.
$argc 동작 방식
아래 예제는 스크립트 이름을 포함하여 총 3개의 인수가 전달되었을 때만 정상적으로 동작하도록 작성된 스크립트입니다. $argc 값이 3이 아니면 프로그램은 오류 메시지를 출력하고 종료됩니다.
예제
<?php
if ($argc!=3){
echo "invalid number of arguments";
die();
} else{
echo "number of arguments is valid";
}
?>
출력 결과
인수 개수가 올바르지 않은 경우 (스크립트 이름 + 3개의 인수 = 총 4개):
C:\xampp\php>php test1.php 1 2 3 invalid number of arguments
인수 개수가 올바른 경우 (스크립트 이름 + 2개의 인수 = 총 3개):
C:\xampp\php>php test1.php 1 2 number of arguments is valid
참고: $argv와 함께 사용하기
$argc는 전달된 인수의 개수만 알려줍니다. 실제 인수 값이 필요하다면 같은 조건에서 제공되는 배열 변수 $argv를 사용하세요. $argv[0]에는 스크립트 파일명이 담기며, $argv[1]부터 순서대로 각 인수가 저장됩니다. 두 변수를 함께 활용하면 명령줄 기반 CLI 도구를 더욱 안전하고 유연하게 작성할 수 있습니다.