0
点赞
收藏
分享

微信扫一扫

CSS3样式分类:

常量

php中常量是一个简单值的标识符。该值在脚本中不能改变。

一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

常量有两点需要特别注意的地方

  • 常量在整个脚本中都可以使用。
  • 常量值被定义后,在脚本的其他任何地方都不能被改变

设置 PHP 常量

设置常量,使用 define() 函数,函数语法如下:

该函数有三个参数:

  • name:必选参数,常量名称,即标志符。

  • value:必选参数,常量的值。

  • case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感,默认是大小写敏感的。

注意:自 PHP 7.3.0 开始,定义不区分大小写的常量已被弃用。从 PHP 8.0.0 开始,只有 false 是可接受的值,传递 true 将产生一个警告。(可以使用@忽略警告)

示例如下,

<?php
	define('hi','php是世界上最好的语言',false);
	echo hi;
	
	echo "<br/>";
	//第三个参数true已被弃用,只能接收false参数,想要忽略警告则添加@
	@define('hello','helloWorld!!!',true);
	#正常输出
	echo hello;
	#报错,因为true被弃用现在常量大小写敏感
	echo HELLO;
?>

在这里插入图片描述
报错的意思是 不区分大小写的常量已弃用。此常量的正确大小写是“hello” 在第11行

常量是全局的

常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。

以下实例演示了在函数内使用常量,即便常量定义在函数外也可以正常使用常量。

<?php
define("PHP", "PHP是世界上最好的语言");

function myTest() {
    echo PHP;
}

myTest();    // 输出PHP是世界上最好的语言
?>

在这里插入图片描述

常量与变量细节

  1. 常量和(全局)变量在不同的名字空间中。这意味着例如 HELLO 和 $HELLO是不同的。
<?php
	define("HELLO", "PHP是世界上最好的语言");
	$HELLO='hello world!!!';
	echo HELLO;
	echo "<br/>";
	echo $HELLO;
?>

在这里插入图片描述

  1. 常量和变量不同,常量只能包含标量数据(boolean,integer,float 和 string)

可变变量(魔术变量)

到了我最喜欢的可变变量了,在PHP中有一个其他类型的变量,“可变变量”。可变变量是一种PHP独特的变量,他允许动态改变一个变量的名称。,可变变量声明为两个$$符(使用两个美元符号($))

<?php
$a='hello  world';
$$a="php是世界上最好的语言"; //这就是一个可变变量
var_dump($a);
echo "<br/>";
var_dump($$a);
?>

这时两个变量都被定义了,我们可以尝试输出他们,如下,变量正常输出了
在这里插入图片描述

但这里有一个有意思的问题,当我们正常声明了一个可变变量,我们可以再直接声明一个可变变量

<?php
	$a='hello  world';
	$$a="php是世界上最好的语言"; //这就是一个可变变量
	$$b='hhh'; //直接声明$$b编译器不再报错
	var_dump($a);
	echo "<br/>";
	var_dump($$a);
	echo '<br/>';
	var_dump($b);
	echo '<br/>';
	var_dump($$b);
?>

查看他们的输出结果,可以看到$b的值依旧是NULL
在这里插入图片描述

可变变量的作用

上面说到了,可变变量是一种PHP独特的变量,他允许动态改变一个变量的名称
即,在PHP中如果在一个变量名称前面放两个美元($)符号,PHP就会废弃右面的变量,而取其值,然后,将该值作为“真正”的变量名称。例如:
实例如下

<?php
	$a='hello';
	$hello="php是世界上最好的语言"; 
	var_dump($a);
	echo "<br/>";
	var_dump($$a);
	echo  "<br/>";
	var_dump($hello); //当掉用$hello的时候输与$$a是一样的
?>

输出如下,
在这里插入图片描述
当$a的值发生改变时,通过$$a的调用的变量也得相应的改变

<?php
	$a='hello';
	//因为$a=hello,使用$$a=$hello(hello是$a的值,当有两个$时会被这样解析);
	$hello="php是世界上最好的语言"; //原本是打算写$$a的这才是可变变量的声明方式,但是不宜于理解
	var_dump($a);
	echo "<br/>";
	var_dump($$a);
	echo  "<br/>";
	var_dump($hello); //当掉用$hello的时候输与$$a是一样的
	echo  "<br/>";
	$a='hi';
	var_dump($$a);//$$a会被解析从$hi,因为没有声明过$hi,所以$$a输出null
?>

输出如下
在这里插入图片描述

可变变量之于数组

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

<?php
	$a=array("aa","bb","cc");
	//这的${$a[0]}会被浏览器解析成${aa}(aa就是$a[0]的值),也就是说,这样声明的变量,可以使用$aa取出来
	${$a[0]}='PHP是世界上最好的语言';
	echo $aa;
	echo "<br/>";
	echo ${$a[0]};
	echo "<br/>";
	${$a}[0]="hello world";
	echo ${$a}[0];
?>

输出如下
在这里插入图片描述

举报

相关推荐

CSS3样式基础之盒子模型

CSS3新增样式

CSS3设计动画样式

CSS3新增边框样式

CSS3 布局样式及其应用

3-H5样式控制CSS1

CSS3(响应式布局)

CSS3新增样式(四)——grid布局

0 条评论