PHP의 const 및 전역

不言
풀어 주다: 2023-03-23 17:04:01
원래의
2776명이 탐색했습니다.

이 기사에서 공유한 내용은 PHP의 const 및 전역에 관한 것입니다. 필요한 참조 값이 있습니다. 도움이 필요한 친구는 이를 참조할 수 있습니다.

1. 정의 시 초기화되어야 합니다. 2. 변수 이름 문자는 일반적으로 대문자로 표시됩니다.

5. 상수는 클래스에 속하며

【기능】일부 값이 고정되어 있는 경우 const를 사용하세요

【구별】const로 정의된 상수와 정의()로 정의된 상수의 차이점은 무엇인가요?


멤버 변수가 수정되지 않기를 바랍니다(예: pi 3.1415926

정의:
const 상수 이름 = 값; no $ 기호


액세스:

클래스 이름::상수 이름 또는 인터페이스) name::상수 이름

And: defined('TEXT');
이름이 지정된 상수가 있는지 확인하세요

<?php                     
 class A{
 const TAX_RATE=0.08;
 public function payTax($var){
 return $var*A::TAX_RATE;
}
}
$a=new A();
echo $a->payTax(200):
?>
로그인 후 복사
사용법 1:

const는 클래스 멤버에 사용됩니다

변수는 정의된 후에는 수정할 수 없습니다. , define은 전역 상수 에 사용되며 클래스 멤버 변수 정의에는 사용할 수 없습니다. const는 클래스에서 사용할 수 있지만 정의는 사용할 수 없습니다.

사용법 2: const로 정의된 상수는 대소문자를 구분하며, 정의는 세 번째 매개변수를 통해 대소문자 구분 여부를 지정할 수 있습니다(TRUE는 대소문자를 구분하지 않음을 의미함). 런타임 시 상수를 정의합니다. Define('TXE',100,TRUE);

사용법 3: const는 조건문에서 상수를 정의할 수 없지만 정의 함수는 정의할 수 있습니다. if($a>10){define('LE','hello');}

global

【인용: http://www.phptd.com/?action-viewnews- itemid-6147】


1. 슈퍼 전역 변수 $GLOBALS

PHP에는 많은 슈퍼 전역 변수가 있습니다. 다음은 모두 슈퍼 전역 변수입니다:

$GLOBALS, $_SERVER, $ _GET, $ _POST, $_FILES, $_COOKIE, $_SESSION, $_REQUEST, $_ENV.

공식 설명:


$GLOBALS — 전역 범위에서 사용 가능한 모든 변수를 나타냅니다.

모든 변수를 포함하는 전역 결합 배열입니다. 변수의 이름은 배열의 키입니다.

등장한 전역 변수는 $GLOBALS 배열을 통해 얻을 수 있습니다.

PHP 라이프 사이클에서

함수 본문 외부에 정의된 소위 전역 변수는 함수 내부에서 직접 얻을 수 없습니다
    .
  • $foo = "Example content";
    test();function test() {    $foo = "local variable";    echo &#39;$foo in current scope: &#39; . $foo . "<br>";    echo &#39;$foo in global scope: &#39; . $GLOBALS["foo"] . "<br>";
    }
    로그인 후 복사
  • 위의 예에서 외부 $foo에 액세스하려면 $GLOBALS 배열을 사용해야 합니다. 이는 포함 파일을 통해 들어오는 외부 전역 변수에도 적용됩니다.

php의 global에도 이러한 함수가 있습니다. $GLOBALS와 차이점은 다음과 같습니다.

PHP의 const 및 전역global은 실제 외부 변수가 아닌 함수의 외부 변수를 가리키는 별칭 변수를 생성합니다. 함수의 변수.

$GLOBALS[]는 실제로 외부 변수라고 하며 함수 내부와 외부에서 항상 일관됩니다. PHP의 const 및 전역

클래스의 멤버 변수의 경우 클래스의 함수는 $GLOBALS가 아닌 $this->를 사용하여 액세스해야 합니다.

global은 전역 변수를 정의하는 데 사용되지만 이 전역 변수는 전체 웹사이트에 적용되지 않습니다. 이지만 포함하거나 필요한 모든 파일을 포함하여 현재 페이지에 적용됩니다.

  • 2. 예시 설명

function t1() {    global $var1, $var2;    $var2 = &$var1;
}function t2() {    $GLOBALS[&#39;var3&#39;] = &$GLOBALS[&#39;var1&#39;];
}$var1 = 5;$var2 = $var3 = 0;
t1();print $var2 ."\n";
t2();print $var3 ."\n";
로그인 후 복사


실행 결과는 0

5


왜 안되죠? 2 5인데 0과 1 뭐 약 5?

예제를 다시 수정하세요:

PHP의 const 및 전역

PHP의 const 및 전역

function t1() {    global $var1;    $var1 = 2;    unset($var1);
}function t2() {    $GLOBALS[&#39;var1&#39;] = 3;    unset($GLOBALS[&#39;var1&#39;]);
}$var1 = 1;
t1();print $var1 . "\n";
t2();print $var1 . "\n";
로그인 후 복사




执行结果只输入一个2;

1、$GLOBALS是由所有已定义全局变量自动形成的数组。变量名就是该数组的索引。即$GLOBALS['var1']与函数外部的变量$var1是同一个变量,所以将$GLOBALS['var1'] 删除后,该变量已不存在,所有无法输出了。
注:$GLOBALS是自动全局变量。这意味着它在所有的脚本中都有效。在函数或方法中不需要使用 global $GLOBALS; 来访问它。

2、"global $var1;"是产生了函数外部$var1的别名变量"$var1",它不是真正的函数外部变量,他只存在于函数的内部,所以即使在函数内将别名变量删除也不会影响外面的变量,但是可以修改函数外部变量的值。

或许有的人总想知道这个或那个的区别:在php程序,包括其他程序的学习中,自己动手实验,根据结果加上的思考,有的时候比上网查找可能会来得更快一些,更准确一些。下面我们来讲一下,php在全局范围内访问变量要怎么办?
例一:global定义全局变量。


PHP의 const 및 전역

function test_global() {    global $var1;    $var1 = &#39;ok&#39;;    unset($var1);
}
test_global();$var2 = &$var1;unset($var1);echo $var2;
로그인 후 복사

PHP의 const 및 전역

先不给出结果,自己运行一下程序。函数内部的变量可以访问到了。从结果可以看出,unset只是断开变量名与变量值连接,并没有马上销毁变量的值,而且在函数内部定义的全局变量,实际在外部只是使用了函数内部的别名而已,所以我们在外面依然可以访问$var1。

例二:$GLOBALS在函数内部访问函数外面定义的变量。


$waibu = &#39;out&#39;;function ff() {    echo $GLOBALS[&#39;waibu&#39;];
}
ff();
로그인 후 복사


直接在函数内部使用$waibu是会出错的。

相关推荐:

详解PHP常量:define和const的区别

php中const与static的区别与使用

PHP 闭包获取外部变量和global关键字声明变量的区别讲解_php实例

위 내용은 PHP의 const 및 전역의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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