前面学习了MySQL基础,为了更好的实践使用,接下来学习关于PHP的知识。
关于PHP中的变量、常量介绍了解
一、变量基本类型(这里只介绍了标量类型)
1、整型值,可以使用十进制、十六进制、八进制或二进制表示,前面可以加上(+或者-)表示正负值。
具体例子:
<?php
$a = 12; //十进制数
$b = -12; //负数
$c = 012; //八进制数(等于十进制数10)
$d = 0x12; //十六进制(等于十进制数18)
$e= 0b11; //二进制(等于十进制数3)
?>
2、浮点型,也叫浮点数float,双精度数double或者实数real
具体例子:
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
思考以下例子:
if((0.3 - 0.1) == 0.2){
echo("0.3 - 0.1 等于 0.2");
}else{
echo("0.3 - 0.1 不等于0.2");
}
为什么结果会是“0.3 - 0.1 不等于0.2”呢?
答:这是浮点数的精度的问题,php通常使用IEEE754双精度格式,则由于取整而导致的最大相对误差为1.11e-16。非基本数学
运算可能会出更大误差,并且数学运算可能会给出更大误差,并且要考虑到进行复核运算时的误差传递。此外,以十进制能够表
示的有理数,例如0.1或者0.7,无论有多少尾数都不能够被内部所使用的二进制精确表示,因此不能再不丢失一点点精度的情况
下转换为二进制的格式。这就会造成混乱的结果。例如,floor((0.7 + 0.1) * 10)通常会返回7而不是8,这是因为该结果内部的表示
其实是类似7.9999999991118......
所以,永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。
3、字符串类型,string,由一系列的字符组成,其中一个字符等同于一个字节。字符串不支持Unicode。
a、单引号表达:定义一个字符串的最简单方法就是用单引号把它包围起来。要表达一个单引号自身,需在它的前面加个反斜线
(\)来转义。要表达一个反斜线自身,则用两个反斜线(\\)。其它任何方式的反斜线后悔别当成反斜线本身。
具体例子:
<?php
$a = 'I \' ll find out the path, and the result is e:\result.';
echo $a;
?>
输出结果:I ' ll find out the path, and the result is e:\result.
b、双引号表达:如果字符串是包围在双引导("")中,PHP将会对一些特殊的字符进行解析:(下图为转移字符表)
当转义任何其它字符都会导致反斜线被显示出来。
4、布尔类型:boolean表达了真值,可以为TRUE或FALSE。指定了一个布尔值,使用常量TRUE或FALSE。两个都不区分大小
写。当直接echo出布尔型的时候,布尔型被转换成了字符串,true为1,false为空字符串。
5、NULL型:空集
得到空集的三种方法:1、给变量直接赋值为Null;2、unset一个变量,即销毁一个变量;3、只声明不赋值。
二、动态变量
具体例子:
<?php
$a = 'you';
$you = 'me';
echo $a,'</br>';
echo $you,'</br>';
echo $$a,'</br>';
?>
输出结果:
you
me
me
如上,变量名还可以是一个变量,它允许变量名字仍然是一个变量。
三、变量的检测(针对无声明或者unset掉的变量)
可以用isset函数来检验变量是否存在。
<?php
$a = 'you';
$you = 'me';
echo $a,'</br>';
echo $you,'</br>';
echo $$a,'</br>';
?>
输出结果:
you
me
me
四、变量赋值的方法
1、传值赋值,指的是将值复制到另一变量的存储地址中,而不改变值的指向地址。
<?php
$a = 10;
$b = 5;
$b = $a;
echo $a, '</br>';
echo $b, '</br>';
?>
如图,a,b的指向并没有发生变化,只是值的传输而已,传值之后a和b没有什么关系。
2、引用传值
<?php
$a = 10;
$b = 5;
$b = &$a;
echo $a, '</br>';
echo $b, '</br>';
unset($a);
echo $b;
?>
如图,初始时a与b指向各自的内存地址,当时b引用a时,发生的是b指向a的地址,所以此时,a和b指向同一对象,当unset掉a
时,由于b也指向a的地址,所以该地址不会被回收,仍然能够读出值。
五、常量
1、常量的存在意义
使用常量,一处定义,多处调用。一处修改,所有修改。
而变量时可以随意赋值的,所以当被改变时会引起所有引用的改变,对于一些非常重要的值,为了避免被修改,引入一种方法,
使得该值在定义后不能被修改,所以需要用到常量。
2、常量的具体语法
<?php
//圆周率的值为3.1415
//define(常量名, 常量值);
define('PI', 3.1415);
echo PI;
?>
3、常量的特点
a、 一旦定义,值不能被修改,且不能重新赋值。
<?php
//具体例子
define('PI', 3.1415);
echo PI, '</br>';
PI = 3.14;
echo PI;
?>
结果:Parse error: syntax error, unexpected '=' in E:\APMServ5.2.6\www\htdocs\01.php on line 5
b、一旦定义,不能重新定义。
<?php
//具体例子
define('PI', 3.1415);
echo PI, '</br>';
define('PI', 3.14);
echo PI;
?>
结果:
3.1415
3.1415
c、全局有效性,即在页面的任意一处都能够被访问到。
<?php
define('HEIGHT', 8846);
$hei = 12;
echo HEIGHT, '</br>';
echo $hei, '</br>';
function t(){
echo HEIGHT, '</br>';
var_dump($hei);
}
t();
?>
结果:
8846
12
8846
NULL
注意:$hei为NULL,因为函数内的$hei是局部变量,而函数中并没有定义。这就体现出常量与变量的区别。
4、常量的命名规则
常量的命名规则与变量一样,只能以_和字母开头(但不需$),同时对于常量我们通常是采用全大写(语法上允许小写),php中大小写是非常敏感的。如果引用了一个未曾定义的常量,因为没有定义该常量,因此找不到对应值,最终会把常量名当成字符串来输出。
5、常量的类型
整型、浮点型、字符串型、布尔型和NULL等五种标量。而array、object、resource都不可以赋给常量。
6、常量的检测
<?php
//用defined('常量名')即可检测常量是否已经定义
if(defined('HEI')){
echo 'HEI常量已定义';
}else{
echo 'HEI常量未定义';
}
?>
结果:HEI未定义
7、动态常量
<?php
//用constant($var),则会把$var的值,当成一个常量的名,并解析出常量的值。
$who = $_GET['who'];
define('ONE', '星星');
define('TWO', '月亮');
define('THREE', '白云');
define('FOUR', '蓝天');
echo constant($who);
?>
六、打印的几种方法
这里简单介绍一下,php中的三种打印方式
1、echo,输出变量,适用于整型、浮点型、字符串型等标量类型;
2、print_r,适用于对象、数组这种二维或多维结构的数据;
3、var_dump,不仅可以打印数据,还可以打出数据的类型。
来源:CSDN
作者:三木屿曦
链接:https://blog.csdn.net/Catherinelnd/article/details/103534648