PHP语言基础(三)----PHP变量

1、变量声明及使用
程序执行过程中数值可以变化的量。通过名字来标识,系统会为其在内存中开辟空间,变量实质是计算机内存单元的命名。借助变量名访问内存数据。

<?php
	$string1 = "spcn<br>";//直接定义一个变量后直接赋值。
	$string2 = $string1;//变量间的赋值
	$string1 = "zhuding";
	echo $string2;

	$i = "spcn";
	$j = &$i;//使用引用赋值,这是$j已经赋值为spcn
	$i = "hello, $i";//进行重新赋值。
	echo $j;
	echo "<br>";
	echo $i;//此时两次输出结果相同。
?>

运行结果:

spcn
hello, spcn
hello, spcn

注意:引用和复制的区别在于,复制是讲值复制下来重新再开辟空间存储;引用是给该内存重新起一个名字,相当于换了一个笔名,换汤不换药。

2、变量的作用域
变量需要在有效范围内使用,超出范围则变量将没有意义。

局部变量在函数内部定义的变量,只作用于当前函数
全局变量定义于所有函数以外的变量,作用于整个PHP文件,但是在用户自己定义的函数内部是不可以用的,如果希望在自己定义的函数内使用则需要使用global关键字声明
静态变量能够在函数调用结束后依旧保留的变量,当再次回到其作用域时可以继续使用原来的值。一般的变量是在函数调用之后,存储数据值删除,所占空间释放,需要使用static关键字声明

注意:函数内部定义的变量,作用域是所在函数,如果在函数外赋值,则会认为是完全不同的一个变量。退出声明变量的函数时,该变量及相应的值会被清除
下面的例子用于比较局部变量和全局变量的区别
<?php
$example = “在…函数外”;//声明全局变量
function example(){
e x a m p l e = &quot; . . . 在 函 数 内 . . . &quot; ; / / 声 明 局 部 变 量 e c h o &quot; 在 函 数 内 输 出 的 内 容 是 : example = &quot;...在函数内...&quot;;//声明局部变量 echo &quot;在函数内输出的内容是: example="......";//echo":example.
";//输出局部变量
}
example();//调用函数
echo “在函数外输出的内容是:$example.
”;//输出全局变量
?>
输出结果:

在函数内输出的内容是:...在函数内....
在函数外输出的内容是:在...函数外.

下面的例子用于比较静态变量和普通变量的区别

<?php
	function zdy (){
		static $message = 0;
		$message+=1;
		echo $message." ";
	}
	function zdy1(){
		$message = 0;
		$message+=1;
		echo $message." ";                                  
	}
	for ($i=0; $i < 10 ; $i++) { 
		# code...
		zdy();
	}
	echo "<br>";
	for ($i=0; $i < 10; $i++) { 
		# code...
		zdy1();
	}
	echo "<br>";
?>

结果如下:

1 2 3 4 5 6 7 8 9 10 
1 1 1 1 1 1 1 1 1 1 

下面例子是关于全局变量在函数中调用的例子

<?php
	$zy = "会看到";
	$zyy = "不会看到";
	function lxt(){
		echo $zy."<br>";//这句将不会显示
		global $zyy;
		echo $zyy."<br>";//这句将会显示
	}
	lxt();
?>

结果如下:

不会看到

3、可变变量
一种独特的变量,允许动态的改变变量的名称。原理是变量的名称有另一个变量的值来确定,实现过程是在变量钱多加一个$符号。

<?php
	$change_name = "trans";
	$trans = "You can see me!";
	echo $change_name;
	echo "<br>";
	echo $$change_name;
?>

输出结果:

trans
You can see me!

原理就是,执行$$change_name时首先执行$change_name得到的结果是$trans

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值