PHP 常量与变量
PHP 常量与变量
【常量】可以用 define() 函数来定义常量,在 PHP 5.3.0 以后,可以使用 const 关键字在类定义之外定义常量。一个常量一旦被定义,就不能再改变或者取消定义。
常量只能包含标量数据(boolean,integer,float 和 string)。可以定义 resource 常量,但应尽量避免,因为会造成不可预料的结果。
可以简单的通过指定其名字来取得常量的值,与变量不同,不应该在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数 constant() 来获取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。
如果只想检查是否定义了某常量,用 defined() 函数。
常量和变量有如下不同:
? 常量前面没有美元符号($);
? 常量只能用 define() 函数定义,而不能通过赋值语句;
? 常量可以不用理会变量的作用域而在任何地方定义和访问;
? 常量一旦定义就不能被重新定义或者取消定义;
? 常量的值只能是标量。
预定义常量
很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。这些特殊的常量不区分大小写,如下:
名称 | 说明 |
---|---|
__LINE__ |
文件中的当前行号。 |
__FILE__ |
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。 |
__DIR__ |
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) = |
__FUNCTION__ |
函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。 |
__CLASS__ |
类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。 |
__TRAIT__ |
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。 |
__METHOD__ |
类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。 |
__NAMESPACE__ |
当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。 |
PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。 变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。
变量默认总是传值赋值。那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。PHP 也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,"成为其别名" 或者 "指向")了原始变量。改动新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前(源变量)。
预定义变量
PHP 4.2.0 以及后续版本中,PHP 指令 register_globals 的默认值为 off。这是 PHP 的一个主要变化。让 register_globals 的值为 off 将影响到预定义变量集在全局范围内的有效性。例如,为了得到 DOCUMENT_ROOT 的值,将必须使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT,又如,使用 $_GET['id'] 来代替 $id 从 URL http://www.example.com/test.php?id=3 中获取 id 值,亦或使用 $_ENV['HOME'] 来代替 $HOME 获取环境变量 HOME 的值。
?超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量
?$GLOBALS — 引用全局作用域中可用的全部变量
?$_SERVER — 服务器和执行环境信息
?$_GET — HTTP GET 变量
?$_POST — HTTP POST 变量
?$_FILES — HTTP 文件上传变量
?$_REQUEST — HTTP Request 变量
?$_SESSION — Session 变量
?$_ENV — 环境变量
?$_COOKIE — HTTP Cookies
?$php_errormsg — 前一个错误信息
?$HTTP_RAW_POST_DATA — 原生POST数据
?$http_response_header — HTTP 响应头
?$argc — 传递给脚本的参数数目
?$argv — 传递给脚本的参数数组
global 关键字
PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖。这可能引起一些问题,有些人可能不小心就改变了一个全局变量。PHP 中全局变量在函数中使用时必须声明为 global或者用特殊的 PHP 自定义 $GLOBALS 数组。$GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。
静态变量
变量范围的另一个重要特性是静态变量(static variable)。
可变变量
有时候使用可变变量名是很方便的。就是说,一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置。
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
<!--?php // 常量,忽略大小写 define(INVALIDE_VALUE, 12, true); echo INVALIDE_VALUE."<br-->"; echo invalide_value." "; if(defined("INVALIDE_VALUE")) { echo "INVALIDE_VALUE 已经定义".__LINE__." ";; } // 变量 $str1 = 'str1'; $str2 = & $str1; // 引用 $str1 = "Changed $str1"; echo $str1." "; echo $str2." "; echo $_SERVER['DOCUMENT_ROOT']." "; // 预定义变量 $gVal = 13; function Test() // 全局变量 { global $gVal; echo $gVal." "; echo $GLOBALS['gVal']." "; } Test(); function test1() { static $a = 0; // 静态变量 echo $a; $a++; } // 可变变量 class foo { var $bar = 'I am bar.'; var $arr = array('I am A.', 'I am B.', 'I am C.'); var $r = 'I am r.'; } $foo = new foo(); $bar = 'bar'; $baz = array('foo', 'bar', 'baz', 'quux'); echo $foo->$bar ." "; echo $foo->$baz[1] ." "; $start = 'b'; $end = 'ar'; echo $foo->{$start . $end} ." "; $arr = 'arr'; echo $foo->$arr[1] ." "; echo $foo->{$arr}[1] ." "; ?>

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











환경 변수는 애플리케이션과 프로그램이 실행되는 위치(또는 환경)에 대한 경로입니다. 사용자가 생성, 편집, 관리 또는 삭제할 수 있으며 특정 프로세스의 동작을 관리할 때 유용합니다. Windows에서 개별적으로 편집할 필요 없이 여러 변수를 동시에 관리하기 위한 구성 파일을 만드는 방법은 다음과 같습니다. 환경 변수 Windows 11 및 10에서 프로필을 사용하는 방법 Windows에는 사용자 변수(현재 사용자에게 적용)와 시스템 변수(전역적으로 적용)라는 두 가지 환경 변수 세트가 있습니다. 그러나 PowerToys와 같은 도구를 사용하면 별도의 구성 파일을 만들어 새 변수와 기존 변수를 추가하고 한 번에 관리할 수 있습니다. 방법은 다음과 같습니다. 1단계: PowerToysPowerTo 설치

상수는 변수라고도 하며 일단 정의되면 프로그램이 실행되는 동안 그 값이 변경되지 않습니다. 따라서 변수를 고정된 값을 참조하는 상수로 선언할 수 있습니다. 텍스트라고도 합니다. 상수는 Const 키워드를 사용하여 정의해야 합니다. 구문 C 프로그래밍 언어에서 사용되는 상수의 구문은 다음과 같습니다. - consttypeVariableName; (또는) consttype*VariableName; 다양한 유형의 상수 C 프로그래밍 언어에서 사용되는 다양한 유형의 상수는 다음과 같습니다. 정수 상수 - 예: 1,0 ,34, 4567 부동 소수점 상수 - 예: 0.0, 156.89, 23.456 8진수 및 16진수 상수 - 예: 16진수: 0x2a, 0xaa.. 8진수

상수와 변수는 프로그래밍에서 데이터 값을 저장하는 데 사용됩니다. 변수는 일반적으로 시간이 지남에 따라 변경될 수 있는 값을 나타냅니다. 상수는 프로그램 실행 중에 값을 변경할 수 없는 변수 유형입니다. Python에서 사용할 수 있는 내장 상수는 6개뿐입니다. 이는 False, True, None, NotImplemented, Ellipsis(...) 및 __debug__입니다. 이러한 상수 외에도 Python에는 상수 값을 저장하는 내장 데이터 유형이 없습니다. 예 상수의 예는 아래에 설명되어 있습니다. False=100 출력 SyntaxError:cannotsigntoFalseFalse는 부울 값을 저장하는 데 사용되는 Python의 내장 상수입니다.

엄격 모드는 개발자가 잠재적인 오류를 줄이는 데 도움이 될 수 있는 PHP7에 도입되었습니다. 이 기사에서는 엄격 모드가 무엇인지, PHP7에서 엄격 모드를 사용하여 오류를 줄이는 방법을 설명합니다. 동시에, 코드 예제를 통해 엄격 모드의 적용을 시연합니다. 1. 엄격 모드란 무엇입니까? 엄격 모드는 개발자가 보다 표준화된 코드를 작성하고 몇 가지 일반적인 오류를 줄이는 데 도움이 되는 PHP7의 기능입니다. 엄격 모드에서는 변수 선언, 유형 확인, 함수 호출 등에 대한 엄격한 제한 및 감지가 있습니다. 통과하다

상수 변수는 값이 고정되어 있고 프로그램에 단 하나의 복사본만 존재하는 변수입니다. 상수 변수를 선언하고 값을 할당하면 프로그램 전체에서 해당 값을 다시 변경할 수 없습니다. 다른 언어와 달리 Java는 상수를 직접 지원하지 않습니다. 그러나 변수를 static 및 final로 선언하여 상수를 생성할 수 있습니다. 정적 - 정적 변수를 선언하면 컴파일 타임에 메모리에 로드됩니다. 즉, 하나의 복사본만 사용할 수 있습니다. 최종 - 최종 변수를 선언한 후에는 해당 값을 수정할 수 없습니다. 따라서 인스턴스 변수를 static 및 final로 선언하여 Java에서 상수를 생성할 수 있습니다. 예시 데모 classData{&am

Java의 인스턴스 변수는 메소드나 생성자가 아닌 클래스에 정의된 변수를 참조합니다. 인스턴스 변수는 멤버 변수라고도 합니다. 클래스의 각 인스턴스에는 인스턴스 변수의 자체 복사본이 있습니다. 인스턴스 변수는 객체 생성 중에 초기화되며 해당 상태는 객체 수명 동안 저장 및 유지됩니다. 인스턴스 변수 정의는 일반적으로 클래스의 맨 위에 배치되며 public, private, protected 또는 기본 액세스 한정자를 비롯한 모든 액세스 한정자를 사용하여 선언할 수 있습니다. 그것은 우리가 원하는 것이 무엇인지에 달려 있습니다.

PHP 함수 소개—strpos(): 변수가 문자열인지 확인합니다. PHP에서 is_string()은 변수가 문자열인지 확인하는 데 사용되는 매우 유용한 함수입니다. 변수가 문자열인지 확인해야 할 때 is_string() 함수를 사용하면 이 목표를 쉽게 달성할 수 있습니다. 아래에서는 is_string() 함수를 사용하는 방법에 대해 알아보고 관련 코드 예제를 제공합니다. is_string() 함수의 구문은 매우 간단합니다. 그것은 단지 필요하다

Ajax를 사용하여 PHP 메소드에서 변수를 얻는 것은 웹 개발의 일반적인 시나리오입니다. Ajax를 통해 데이터를 새로 고치지 않고도 페이지를 동적으로 얻을 수 있습니다. 이 기사에서는 Ajax를 사용하여 PHP 메소드에서 변수를 가져오는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 Ajax 요청을 처리하고 필요한 변수를 반환하기 위해 PHP 파일을 작성해야 합니다. 다음은 간단한 PHP 파일 getData.php에 대한 샘플 코드입니다.
