PHP声明变量
2.4 变量
变量是指在程序的运行过程中随时可以发生变化的量,在代码中可以只使用一个变量,也可以使用多个变量,变量中可以存放单词、数值、日期以及属性等。变量的值是临时的,当程序运行的时候,该值是存在的,如果程序结束,变量的值就会丢失。虽然在前面的示例中也使用到了变量,但是没有详细的说明,本节将详细介绍如何创建变量,以及如何引用变量。
2.4.1 创建变量
PHP中的变量是用美元符号($)作为前缀的标示符,标识符是一个标识不同对象的符号,如变量的名称,函数的名称,或者其他用户自定义对象的名称。在PHP中,标识符的命名必须符合下面的规定:
l 标识符可以由一个或多个字符组成,但必须以字母或下划线开头。此外,标识符只能由字母、数字、下划线字符和从127到255的其他ASCII字符组成。如my_a、Ss、_value这些标识符名称都是合法的,而q^a、4tt这些变量的名称是不合法的。
l 标识符区分大小写。因此,变量$recipe不同于变量$Recipe、$rEciPe或$recipE。
l 标识符可以是任意长度。这很有好处,因为这样一来,程序员就能通过标识符名准确地描述标识符的用途。
l 标识符名称不能与任何PHP预定义关键字相同。
在创建变量的过程中,先声明变量,再给变量赋值是一个好的习惯。由于PHP是一种弱类型语言,在声明变量时,不需要显示声明变量,变量可以存放任何类型的值,在PHP中,变量在运行时进行类型检查,并且可以用另一个不同类型的值取代变量的值,下面声明一个变量,并且让另一个不同类型的值取代变量的值,再为声明一个没有赋值的变量,具体代码如下所示:
$what = “Yound Tang”;
$what = 25;
$name;
在PHP中,给变量赋值有两种方式,分别为值赋值和引用赋值。值赋值是直接把一个数值通过赋值表达式复制给变量,会把该变量原来的数值覆盖,如果在声明变量时,没有赋值,其行为就形同NULL。在声明变量时赋值是一种常用的变量的赋值方法,使用示例如下所示:
$name = “唐晓阳”;
$age = “23”;
$sex = “男”;
echo “你的姓名是:”.$name.”
”;
echo “你的年龄是:”.$age.”
”;
echo “你的性别是:”.$sex.”
”;
执行该段代码,执行结果如下所示:
你的姓名是:唐晓阳
你的年龄是:23
你的性别是:男
在PHP中,声明变量可以直接赋值,也可以不赋值,当需要使用变量存储值时,可以引用变量赋值,引用赋值表示所创建的变量与另一个变量引用的内容相同。因此,如果多个变量引用了同一个内容,修改其中任意一个变量,在其余的变量上都将有所反映。在等于号后面加一个&符号就可以完成引用赋值。引用赋值的示例形式如下所示。
$value1="Hello World";
$value2=& $value1;
$value2="GoodBye";
echo $value1.”
”;
echo $value2.”
”;
在上述代码中,创建一个变量value1并赋值为“Hello World”,在下面的语句中,变量$value2采用了引用赋值,即把value1的值赋给了value2,此时这两个变量就是一个生命共同体了,当一个发生变化,另外一个就会显示出结果,该段代码执行结果如下所示:
GoodBye
GoodBye
2.4.2 变量作用域
声明变量的位置决定了变量的作用域,变量的作用域决定了程序的那些部分可以访问该变量,那些部分不可以访问该变量,在PHP中,变量的作用域范围可以分为四类:局部变量、函数参数、全局变量和静态变量,本节主要介绍变量的这几种作用域范围。
1.局部变量
在一个函数中声明一个变量是那个函数的局部变量,也就是说该变量只能被函数内部成员访问,函数外部成员是不能访问该变量,并且不可见。默认情况下,函数内部成员不能访问函数外定义的变量(平常所说的的全局变量)。有时局部变量很有用,因为局部变量能够消除出现一位副作用的可能性,否则这些副作用将导致可全局访问的变量被有意或无意地修改。下面创建一个使用局部变量的示例,该示例如代码2.13所示。
代码2.13 使用局部变量
$count =10;
function AddCount()
{
$count = 100;
$count = $count + $count;
echo $count;
echo "
";
}
AddCount();
echo $count;
?>
执行代码2.13,执行结果如下所示:
200
10
有输出结果知,该段代码输出了两个不同的值,这是因为函数AddCount函数中的变量为局部变量,修改局部变量的值不会影响函数外部的任何值,函数中的变量在程序结束时被抛弃,所以全局变量值还是10。
2.函数参数
在PHP中,函数可以接受相应的参数,虽然这些参数是接受函数外部的值,但退出函数后就无法访问这些参数,在函数执行结束后,参数的值就会消失,和函数的执行有很大的关系。函数参数是在函数后面的括号内声明,下面使用该参数创建一个示例,该示例如代码2.14所示。
代码2.14 运用函数参数
function EchoNum($age,$class)
{
echo "你的年龄是:".$age."
";
echo "所在班级:".$class;
}
EchoNum(18,"计算机技术与科学系08级5班");
?>
执行该段代码,执行结果如下所示:
你的年龄是:18
所在班级:计算机技术与科学系08级5班
函数参数也可以称为是局部变量,意味着这些参数只在函数内部起作用,在函数的外部不能访问这些变量,同样当函数执行结束时,变量同样也会撤销。
3.全局变量
全局变量可以在整个PHP程序中,任何地方访问,但是如果要修改一个全局变量,必须在修改该变量的函数中显式的声明为全局变量,在函数中显示声明全局变量很简单,只需在函数中使用global关键字声明就可以,下面创建一个使用全局变量的示例,具体讲解在函数中如何修改全局变量,该示例如代码2.15所示。
代码2.15 在函数中修改全局变量
function AddNum()
{
global $num;
$num = $num + $num ;
echo $num ;
}
$num = 100;
AddNum();
?>
执行代码2.15,执行结果如下所示:
200
如果不在$num前加global,该变量会被认为是局部变量,此时页面上显示的值为0;添加global后,就可以修改全局变量了,声明全局变量还有另外一种方法,那就是使用PHP的$GLOBALS数组,使用该数组和使用global的效果一样,下面创建一个使用$GLOBALS数组的示例,该示例如代码2.16所示。
代码2.16 使用$GLOBALS数组
function AddNum()
{
$GLOBALS['num'] =$GLOBALS['num']+$GLOBALS['num'] ;
echo "该值是:".$GLOBALS['num'] ;
}
$num = 100;
AddNum();
?>
执行代码2.16,执行结果如下所示:
该值是:200
| 在使用全局变量时,一定要注意,因为使用全局变量很容易发生意外。 |
4.静态变量
静态变量在两次调用函数之间其值不变,静态变量仅在局部函数域中声明,用关键字static可以声明一个静态变量。静态变量在函数退出时,不会丢失值,并且再次调用此函数时,还能保留值。下面创建一个使用静态变量的示例,该示例如代码2.17所示。
代码2.17 使用静态变量
function keepNum()
{
static $num =0;
$num ++;
echo "现在静态变量的值是:".$num;
echo "
";
}
$num = 10;
echo "变量num的值是:".$num."
";
keepNum();
keepNum();
?>
执行代码2.17,执行结果如下所示:
变量num的值是:10
现在静态变量的值是:1
现在静态变量的值是:2
由代码2.17执行结果知,由于在函数中指明了变量为静态变量,因此在执行函数时保留了前面的值。
2.3.3 变量的变量
创建一个变量,需要该变量赋值,当然也可以引用赋值,有时候也需要使用该变量的内容作为变量名,也就是说这个变量存放在另一个变量中。定义变量的变量只需要在变量的前面再添加一个美元符号即可。下面创建一个示例,该示例代码如下所示:
$name = "Yound";
$$name = " Tang";
echo $name.$$name;
?>
执行该端代码,执行结果如下所示:
Yound Tang
由上面例子知,一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。就可以作为一个可变变量的变量了,这时,两个变量都被定义了

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











Alipay PHP ...

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

세션 납치는 다음 단계를 통해 달성 할 수 있습니다. 1. 세션 ID를 얻으십시오. 2. 세션 ID 사용, 3. 세션을 활성 상태로 유지하십시오. PHP에서 세션 납치를 방지하는 방법에는 다음이 포함됩니다. 1. 세션 _regenerate_id () 함수를 사용하여 세션 ID를 재생산합니다. 2. 데이터베이스를 통해 세션 데이터를 저장하십시오.

PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.

시스템이 다시 시작된 후 UnixSocket의 권한을 자동으로 설정하는 방법. 시스템이 다시 시작될 때마다 UnixSocket의 권한을 수정하려면 다음 명령을 실행해야합니다.

phpstorm에서 CLI 모드를 디버그하는 방법은 무엇입니까? PHPStorm으로 개발할 때 때때로 CLI (Command Line Interface) 모드에서 PHP를 디버그해야합니다 ...

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...
