티스토리 뷰

php

php 변수

gwni0214 2022. 4. 8. 14:38

 

 

PHP에서 변수는 달러 기호 다음에 변수 이름으로 표시됩니다. 변수 이름은 대소문자를 구분합니다.

변수 이름은 PHP의 다른 레이블과 동일한 규칙을 따릅니다. 유효한 변수 이름은 문자 또는 밑줄로 시작하고 그 뒤에 임의의 수의 문자, 숫자 또는 밑줄이 옵니다. 정규 표현식으로 다음과 같이 표현됩니다. ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

참고 : 여기서 우리의 목적을 위해 문자는 az, AZ이고 128에서 255까지의 바이트( 0x80-0xff)입니다.

참고 : 는 할당할 수 없는 특수 변수입니다. PHP 7.1.0 이전에는 간접 할당(예: 변수 변수 사용 )이 가능했습니다. $this

Userland Naming Guide 도 참조하십시오 .

변수 관련 함수에 대한 정보는 변수 함수 참조 를 참조하십시오 .

<?php
$var 
'Bob';
$Var 'Joe';
echo 
"$var$Var";      // outputs "Bob, Joe"

$4site 'not yet';     // invalid; starts with a number
$_4site 'not yet';    // valid; starts with an underscore
$täyte 'mansikka';    // valid; 'ä' is (Extended) ASCII 228.
?>

기본적으로 변수는 항상 값으로 할당됩니다. 즉, 변수에 표현식을 할당하면 원래 표현식의 전체 값이 대상 변수에 복사됩니다. 예를 들어, 한 변수의 값을 다른 변수에 할당한 후 해당 변수 중 하나를 변경해도 다른 변수에는 영향을 미치지 않습니다. 이러한 종류의 할당에 대한 자세한 내용은 표현식 장을 참조하십시오 .

PHP는 또한 변수에 값을 할당하는 또 다른 방법을 제공 합니다 . 이것은 새 변수가 단순히 원래 변수를 참조(즉, "에 대한 별칭이 됨" 또는 "가리키는")한다는 것을 의미합니다. 새 변수에 대한 변경 사항은 원본에 영향을 미치며 그 반대의 경우도 마찬가지입니다.

참조로 할당하려면 할당되는 변수(소스 변수)의 시작 부분에 앰퍼샌드(&)를 추가하기만 하면 됩니다. 예를 들어 다음 코드 스니펫은 ' My name is Bob'를 두 번 출력합니다.

<?php
$foo 
'Bob';              // Assign the value 'Bob' to $foo
$bar = &$foo;              // Reference $foo via $bar.
$bar "My name is $bar";  // Alter $bar...
echo $bar;
echo 
$foo;                 // $foo is altered too.
?>

한 가지 중요한 점은 명명된 변수만 참조로 할당할 수 있다는 것입니다.

<?php
$foo 
25;
$bar = &$foo;      // This is a valid assignment.
$bar = &(24 7);  // Invalid; references an unnamed expression.

function test()
{
   return 
25;
}

$bar = &test();    // Invalid.
?>

PHP에서 변수를 초기화할 필요는 없지만 매우 좋은 방법입니다. 초기화되지 않은 변수는 사용되는 컨텍스트에 따라 해당 유형의 기본값을 갖습니다. 부울 기본값은 false, 정수 및 부동 소수점 기본값은 0, 문자열(예: echo 에서 사용 )은 빈 문자열로 설정되고 배열은 빈 배열이 됩니다. .

예제 #1 초기화되지 않은 변수의 기본값

<?php
// Unset AND unreferenced (no use context) variable; outputs NULL
var_dump($unset_var);

// Boolean usage; outputs 'false' (See ternary operators for more on this syntax)
echo($unset_bool "true\n" "false\n");

// String usage; outputs 'string(3) "abc"'
$unset_str .= 'abc';
var_dump($unset_str);

// Integer usage; outputs 'int(25)'
$unset_int += 25// 0 + 25 => 25
var_dump($unset_int);

// Float/double usage; outputs 'float(1.25)'
$unset_float += 1.25;
var_dump($unset_float);

// Array usage; outputs array(1) {  [3]=>  string(3) "def" }
$unset_arr[3] = "def"// array() + array(3 => "def") => array(3 => "def")
var_dump($unset_arr);

// Object usage; creates new stdClass object (see http://www.php.net/manual/en/reserved.classes.php)
// Outputs: object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" }
$unset_obj->foo 'bar';
var_dump($unset_obj);
?>

초기화되지 않은 변수의 기본값에 의존하는 것은 동일한 변수 이름을 사용하는 다른 파일에 한 파일을 포함하는 경우 문제가 됩니다. E_NOTICE 레벨 오류는 초기화되지 않은 변수로 작업하는 경우 발생하지만 초기화되지 않은 배열에 요소를 추가하는 경우에는 발생하지 않습니다. isset() 언어 구성을 사용하여 변수가 이미 초기화되었는지 감지할 수 있습니다.

 

출처: https://www.php.net/manual/en/language.variables.basics.php

'php' 카테고리의 다른 글

php 조건문  (0) 2022.04.08
php Form (폼) 의 개념  (0) 2022.04.08
php 연산자  (0) 2022.04.08
php 문법 기초  (0) 2022.04.08
MYSQL 기초  (0) 2022.04.08
댓글
© 2018 webstoryboy