一、变量命名规则
1.必须要以开始$
2.变量的首字母不能以数字开始
3.变量的名字区分大小写
4.变量不要用特殊符号、中文,_不算特殊符号
5.变量命名要有意义(别写xxx,aaa,ccc这种 变量名)
二、字符串声明的三种方式
1.用单引号声明
2.用双引号声明
3.用字界符声明(需要输入非常大段的字符串时使用)
1).在变量后面的等号写三个小于号(<<<)。
2).然后在<<<后面写上字符(建议英文大写字符)。如下例中的:ABC
3).然后换行写上任意想写的字符
4).写完后,顶行。在行最开始处,再写上<<<后面的字符和分号。如下例中的:ABC;
<?php
$zijiefu = <<<ABC
如果
非要在这个滚犊子
前
面<br />
加上一段
<i>距离的话</i>
我想说:<h1>思想有多远,你就跟我滚多远</h1>
ABC;
?>
三、字符串声明时单引号和双引号的区别(面试重点问题)
1.双引号解析变量,但是单引号不解析变量。
2.在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。一定要在变量后面接上特殊字符,例如空格等分开,特殊字符会被正常输出。
3.如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。
4.双引号解析转义字符,单引号不解析转义字符。但,单引号能解析’ 和
5.单引号效率高于双引号,尽可能使用单引号
6.双号和单引号可以互插!!!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。
7.神奇的字符串拼接胶水——(.)点,用来拼接字符串。
8.我们将定界符声明字符串视为双引号一样的功能来看待。
四、var_dump()函数
var_dump() 是一个函数。向括号()中间插入变量。这个函数,会打印出来数据类型,还会对应显示变量的长度和值
五、if…else…语法(没有{}时只能执行一句话)
<?php
if(布尔条件)
布尔值为真(true)时执行,只能写一行代码;
?>
<?php
if(布尔条件)
布尔值为真(true)时执行,只能写一行代码;
else
布尔值为假(false)时执行,只能写一行代码;
?>
<?php
if(布尔条件){
布尔值为真(true)时执行,可写多行代码;
}
?>
<?php
if(布尔条件){
布尔值为真(true)时执行,可写多行代码;
}else{
布尔值为假(false)时执行,可写多行代码;
}
?>
六、数据类型之 NULL类型
1.null表示没有,不是false,不是0,也不是空格
2.主要有以下三空情况会产生空(null)类型:
1).通过变量赋值明确指定为变量的值为NULL
2).一个变量没有给任何值
<?php
//变量$meiyou没有值,输出null
var_dump($meiyou);
?>
3).使用函数unset()将变量销毁掉
<?php
//声明变量
$aaa = 1234;
//unset()销毁变量
unset($aaa);
var_dump($aaa);
?>
3.与null相关的函数:empty(),issset(),unset()
empty()函数:向括号中间传入一个变量。这个变量的值如果为false或者为null或者为0或者为’'的话,返回true。
<?php
$em = 1234;//变量为false,null,0,''返回true
if (!empty($em))
echo "perfect1\n";
else
echo "bad";
?>
unset()函数:销毁变量,这个变量不存在
isset()函数:向括号中间传入一个或者多个变量,变量与变量间用逗号分开。只要有有一个变量为null(false,0,’'排除),则返回false。否则,则返回true。
七、数据类型
变量:整型(int)、 浮点(float)、布尔(bool)、字符串(string);混合类型: 数组(array)、对象(object);特殊类型:空(null)、 资源(resouce)、回调(callback)
八、查看数据类型的函数
1.gettype(传入一个变量) 能够获得变量的类型
2.var_dump(传入一个变量) 输出变类型和值
3.is_* 系列函数。
is_types这一系列的函数,来进行判断某个变量是不是某个类型。如果是这个类型返回真,不是这个类型返回假。
is_int 是否为整型
is_bool 是否为布尔
is_float 是否是浮点
is_string 是否是字符串
is_array 是否是数组
is_object 是否是对象
is_null 是否为空
is_resource 是否为资源
is_scalar 是否为标量(标量变量是指那些包含了 integer、float、string 或 boolean的变量,而 array、object 和 resource 则不是标量。 )
is_numeric 是否为数值类型
is_callable 是否为函数
<?php
//声明布尔类型变量
$fo = false;
if (is_bool($fo))
echo $fo
?>
九、数据类型之自动转换和强制转换
1.布尔值的自动类型转换
1)整型的0为假,其他整型值全为真
2)浮点的0.0,布尔值的假。小数点后只要有一个非零的数值即为真。
3)空字符串为假,只要里面有一个空格都算真。
4)字符串的0,也将其看作是假。其他的都为真
5)空数组也将其视为假,只要里面有一个值,就为真。
6)空(null)也为假
7)未声明成功的资源也为假
2.其他类型的自动类型转换(运算时)
1)只有标量在运算时会产生以下的自动类型转换:
布尔值的true参与运算时会变成整型或者浮点的1,布尔值的false参与运算是会变成整型或者浮点的0,字符串开始处是整型或浮点类型的字符,会转成对应的类型参与运算。
$fo = true;
$result1 = $fo + 1;
$result2 = $fo + 1.43;
//bool变量自动转换为整形变量
var_dump($result1);
//bool变量自动转换为浮点型变量
var_dump($result2);
$str1 = "10";
$str2 = "10是一个整数";
//$str1变量自动转换为整型
$result3 = $str1 + 1;
//$str2开始处转换为整型
$result4 = $str2 + 2;
var_dump($result3);
var_dump($result4);
3.强制类型转换
强制类型转换有三种方式:
1.用后面的三个函数可以完成类型转换,intval()、floatval()、strval()
2.变量前加上()里面写上类型,将它转换后赋值给其他变量,不会改变原变量数据类型
3.settype(变量,类型) 直接改变量本身(settype(变量,‘null’); 等价于 unset()一个变量)
十、常量
1.常量定义
1)define(常量名,常量值),不可在类中使用,为全局变量,可在调用函数的任何地方(函数,循环及if条件)使用
注:
1.常量值只能为标量。
2.常量名可以小写,但是通常大写
3.常量名可以不加引号,但是通常加上引号(单引号)
4.在字符串中调用常量的时候,必须在引号外面
5.常量名建议只用字母和下划线
<?php
//常量名只含字母和下划线,一般大写,带引号
define('MY_NAME','hahahaha');
echo MY_NAME."\n";
//在字符串中调用常量时,常量名要在字符串引号外面
echo "我的名字:".MY_NAME;
?>
2)const 常量名=???,可在类中使用,不能在函数,循环及if条件中使用
十一、可变变量
在变量前面再加一个变量符
<?php
//定义了一个变量叫作 $shu 将$shu这个变量的值设为字符串的biao
$shu = 'biao';
//定义了一个变量$biao。将他的值设置为鼠标
$biao = '鼠标';
//$$shu 就是可变变量:在已声明的变量$shu前又加上了一个变量符
//输出$biao
echo $$shu;
?>
十二、变量的引用
$bar = & $fo,两个变量指向相同的存储空间,其中一个变另一个也会跟着变
<?php
$fo = 5;
//$fo的值为5,将5赋值
$bar = $fo;
//$bar的值原来为5,现在将值改为6
$bar = 6;
//$bar的结果为6
echo $bar.'<br />';
//$fo的结果为5
echo $fo.'<br />';
?>
<?php
$fo = 5;
//注意,加上了一个&符哟
$bar = &$fo;
$bar = 6;
//$bar的结果为6
echo $bar.'<br />';
//$fo的结果为6
echo $fo.'<br />';
?>
十三、运算
1.算数运算
2.自加自减运算
<?php
$x = 5;
$y = 6;
echo $x++ + $x--; //先运算后自加自减,10
echo $x++ + $y--; //11
?>
3.比较运算
4.逻辑运算
5.逻辑与&&和逻辑或||的短路
逻辑与:if( $x && $y) 如果 $x已经为false了,后面的 $y 就没有执行必要了。
<?php
$x = false;
$y = 2;
if($x && $y++)
echo '假';
else
echo'真';
echo $y;//输出y=2,后面的$y++不用执行
?>
逻辑或:if( $x || $y) 如果 $x已经为true了,后面的 $y 就没有执行。
6.三元运算符及其他运算符
三元运算符
$x? 真代码段(只能写一句代码):假代码段(只能写一句代码);
<?php
$x = true;
$x ? $y = 5 : $y = 6;
echo $y; //5
?>