> 백엔드 개발 > PHP 문제 > PHP에서 변수를 정의하는 방법은 무엇입니까?

PHP에서 변수를 정의하는 방법은 무엇입니까?

青灯夜游
풀어 주다: 2023-03-10 17:50:01
원래의
5374명이 탐색했습니다.

PHP 변수를 정의하는 방법: 1. "define(name, value, case_insensitive)" 문을 사용합니다. 2. "$ 변수 이름 = 값;" 문을 사용합니다. " 문; 4. "$$ 변수 이름 = 값;" 문 등을 사용합니다.

PHP에서 변수를 정의하는 방법은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP 변수를 정의하는 방법

상수 정의() 정의;

define(name,value,case_insensitive)
로그인 후 복사

PHP에서 변수를 정의하는 방법은 무엇입니까?

상수 스칼라 데이터(부울, 정수, 부동 소수점 및 문자열)만 포함할 수 있습니다.

상수를 호출할 때 다음과 같이 "$" 기호를 추가하는 대신 이름만 사용하여 상수 값을 가져오면 됩니다. echo CONSTANT

참고: 상수 및 (전역) 변수는 다른 이름 공간. 이는 예를 들어 TRUE와 $TRUE가 다르다는 것을 의미합니다.

일반 변수 $a = "hello";

변수 변수(두 개의 달러 기호($) 사용)

$$a = "world";

두 변수 모두 정의됩니다. $a는 "hello"이고 $hello의 내용은 "world"입니다.

따라서 다음과 같이 표현할 수 있습니다:

echo "$a ${$a}"; 또는 echo "$a $hello"; 둘 다 출력됩니다. : hello world

배열에 가변 변수를 사용하려면 모호성을 해결해야 합니다. 이는 $$a[1]을 작성할 때 파서가 $a[1]을 변수로 원하는지, 아니면 $$a를 변수로 원하는지 여부를 알고 인덱스 [1] 값으로 변수를 추출해야 합니다. 이 문제를 해결하기 위한 구문은 첫 번째 경우에는 ${$a[1]}를 사용하고 두 번째 경우에는 ${$a}[1]을 사용하는 것입니다. echo "$a ${$a}";或者 echo "$a $hello";它们都会输出:hello world

要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。

静态变量

在函数内部static $a = 0;

注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error)

静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用

全局变量

在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:

如:

$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
로그인 후 복사

在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用

global $obj;
로그인 후 복사

注:对于变量的 static 和 global 定义是以 应用 的方式实现的

给变量赋值:传地址赋值(简单引用):

$bar = &$foo; //加&符号到将要赋值的变量前
로그인 후 복사

改动新的变量将影响到原始变量,这种赋值操作更加快速

注意:只有命名变量才可以传地址赋值

注意:如果

$bar = &$a; 
$bar = &$foo;
로그인 후 복사

改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)

PHP 超全局变量$GLOBALS

包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER : 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。

  • $_GET : 经由 HTTP GET 方法提交至脚本的变量。

  • $_POST : 经由 HTTP POST 方法提交至脚本的变量。

  • $_COOKIE : 经由 HTTP Cookies 方法提交至脚本的变量。

  • $_FILES : 经由 HTTP POST 文件上传而提交至脚本的变量。

文件上传表单中要有 enctype="multipart/form-data"

정적 변수

static $a = 0;

참고: 선언의 표현식 결과와 함께 할당하면 static $a =3+3(오류)

static 변수 함수가 실행된 후 변수 값은 손실되지 않으며 재귀 호출에 사용할 수 있습니다.

전역 변수

함수 본문에 정의된 전역 변수는 함수 외부에서 정의된 전역 변수는 함수 본문 내에서 사용할 수 없습니다. 전역 범위의 변수에 액세스하려면 특수 PHP를 사용하여 $GLOBALS 배열을 사용자 정의할 수 있습니다.

예:

disable_functions = phpinfo()
로그인 후 복사
A real 함수 도메인에서 전역 문을 사용하여 가져온 전역 변수 실제로 전역 변수에 대한 참조가 설정됩니다
<?PHP 
define("CONSTANT", "Hello world."); 
echo CONSTANT; // outputs "Hello world." 
echo Constant; // outputs "Constant" and issues a notice. 
?>
로그인 후 복사
로그인 후 복사

참고: 변수의 정적 및 전역 정의는 응용 프로그램 방식으로 구현됩니다.

변수에 값을 할당합니다. 주소 할당 전달(간단한 참조):

🎜rrreee🎜Change 새 변수는 원래 변수에 영향을 미치며 이 할당 작업은 더 빠릅니다. 🎜🎜참고: 명명된 변수만 주소별로 할당할 수 있습니다. 🎜🎜참고: 🎜rrreee🎜인 경우. $bar의 값을 변경하면 foo 변수의 값만 변경할 수 있으며 foo 변수의 값은 변경할 수 없습니다. a의 값을 변경합니다(참조 변경) 🎜🎜🎜PHP 슈퍼 전역 변수 $GLOBALS🎜: 🎜🎜Contains a 현재 스크립트의 전역 범위에서 유효한 각 변수를 가리키는 참조입니다. 이 배열의 키에는 전역 변수 이름이 표시되어 있습니다. $GLOBALS 배열은 PHP 3부터 존재합니다.
$_SERVER: 변수는 웹 서버에 의해 설정되거나 현재 스크립트의 실행 환경과 직접 연결됩니다. 이전 $HTTP_SERVER_VARS 배열과 유사합니다(여전히 유효하지만 더 이상 사용되지 않음). 🎜
  • 🎜$_GET: HTTP GET 메서드를 통해 스크립트에 제출된 변수입니다. 🎜
  • 🎜$_POST: HTTP POST 메서드를 통해 스크립트에 제출된 변수입니다. 🎜
  • 🎜$_COOKIE: HTTP 쿠키 메소드를 통해 스크립트에 제출된 변수입니다. 🎜
  • 🎜$_FILES: HTTP POST 파일 업로드를 통해 스크립트에 제출된 변수입니다. 🎜
🎜파일 업로드 양식에는 enctype="multipart/form-data"🎜🎜$_ENV: 실행 환경에서 스크립트에 제출한 변수가 있어야 합니다. 🎜🎜$_REQUEST: GET, POST 및 COOKIE 메커니즘을 통해 스크립트에 제출된 변수이므로 이 배열은 신뢰할 수 없습니다. 이 배열에 포함된 모든 변수의 존재, 부재 및 순서는 php.ini의 Variable_order 구성 지시문에 따라 정의됩니다. 이 배열은 이전 버전의 PHP 4.1.0을 직접 에뮬레이트하지 않습니다. 🎜🎜참고: PHP 4.3.0부터 $_FILES의 파일 정보는 더 이상 $_REQUEST에 존재하지 않습니다. 🎜🎜$_SESSION: 현재 스크립트 세션에 등록된 변수입니다. 🎜🎜phpinfo()를 비활성화하는 방법: 🎜🎜php.ini 🎜rrreee🎜웹 서버를 다시 시작하세요. 🎜🎜🎜🎜PHP의 상수 🎜🎜🎜🎜상수는 정의(상수 이름, 상수 값)만 사용할 수 있습니다. 🎜🎜상수는 스칼라 데이터(부울, 정수, 부동 소수점 및 문자열)만 포함할 수 있습니다. 🎜

可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数

constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。

注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。

如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar] 是错误的(除非事先用 define() 将 bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined() 函数。

常量和变量不同:

* 常量前面没有美元符号($);

* 常量只能用 define() 函数定义,而不能通过赋值语句;

* 常量可以不用理会变量范围的规则而在任何地方定义和访问;

* 常量一旦定义就不能被重新定义或者取消定义;

* 常量的值只能是标量。

定义常量

<?PHP 
define("CONSTANT", "Hello world."); 
echo CONSTANT; // outputs "Hello world." 
echo Constant; // outputs "Constant" and issues a notice. 
?>
로그인 후 복사
로그인 후 복사

推荐学习:《PHP视频教程

위 내용은 PHP에서 변수를 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿