我们在PHP中的变量也是如此。不过有几个特点:
1.必须要以$开始。如变量x必须要写成$x
2.变量的首字母不能以数字开始
3.变量的名字区分大小写
4.变量不要用特殊符号、中文。(_不算特殊符号)
5.变量命名要有意义(别写xxx,aaa,ccc这种 变量名)
【重要知识点】
PHP面试题中,高概率面试题(建议背诵并实验三遍以上)
1.双引号解析变量,但是单引号不解析变量。[双引号需要解析变量,因此双引号的效率没有单引号高。我们如果为了更高的效率,我们通常使用单引号。]
2.在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。一定要在变量后面接上特殊字符,例如空格等分开。
<?php
$shouji = '为了苹果手机去卖肾';
$str = "$shouji 会不会显示呢?"; //变量后加空格分开
echo $str;
?>
3.如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。[这样就可以忽略第二点。以后遇到这种情况直接加大括号就好了,不用考虑加空格或是特殊字符]
4.双引号解析转义字符,单引号不解析转义字符。但,单引号能解析\' 和\
5.单引号效率高于双引号,尽可能使用单引号
6.双号和单引号可以互插!!!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。
7.神奇的字符串拼接胶水——(.)点,用来拼接字符串。【这样就可以忽略第三点。字符串连接就直接使用单引号,和(.)就可以了】
8.我们将定界符声明字符串视为双引号一样的功能来看待。
var_dump() 是一个函数。向括号()中间插入变量。这个函数,会打印出来数据类型,还会对应显示变量的长度和值。
空在英文里面表示是null,它是代表没有。空(null)不是false,不是0,也不是空格。
【重点】知道null产生的三种情况,学习empty 和 isset两个函数的区别。
主要有以下三空情况会产生空(null)类型:
1.通过变量赋值明确指定为变量的值为NULL
2.一个变量没有给任何值
3.使用函数unset()将变量销毁掉
接下来我们来讲解两个跟null相关的函数,这两个函数非常常用,我们将级别定义为【默写级别】。
empty()可以向括号中间传入一个变量。这个变量的值如果为false或者为null的话,返回true。
isset()可以向括号中间传入一个或者多个变量,变量与变量间用逗号分开。只要有有一个变量为null,则返回false。否则,则返回true。
查看数据类型
1.gettype(传入一个变量) 能够获得变量的类型
2.var_dump(传入一个变量) 输出变类型和值
我们使用is_* 系列函数。 is_types这一系列的函数,来进行判断某个东西是不是某个类型。如果是这个类型返回真,不是这个类型返回假。
is_int 是否为整型
is_bool 是否为布尔
is_float 是否是浮点
is_string 是否是字符串
is_array 是否是数组
is_object 是否是对象
is_null 是否为空
is_resource 是否为资源
is_scalar 是否为标量
is_numeric 是否为数值类型
is_callable 是否为函数
布尔值的自动类型转换
自动类型转换,就是数据类型在某些情况下,自动会变为其他的类型参与运算。自动类型转换的发生时机是:运算和判断的时候某些值会自动进行转换。下面的情况是布尔值判断时的自动类型转换:
1,整型的0为假,其他整型值全为真
2, 浮点的0.0,布尔值的假。小数点后只要有一个非零的数值即为真。
3,空字符串为假,只要里面有一个空格都算真。
4,字符串的0,也将其看作是假。其他的都为真
5,空数组也将其视为假,只要里面有一个值,就为真。
6,空也为假
7, 未声明成功的资源也为假
<?php
//布尔变整型参与运算
$fo = true;
$result = $fo + 10;
//$result 结果为整型的11,因为$fo布尔的true变为了1
//如果$fo的值为0
var_dump($result);
//字符串类型
$str = '419不要爱';
$result = $str + 1;
//结果为420。因为将$str变为了整型的419参与运算
//将419放在字符串中间和结尾试试
var_dump($result);
?>
在提交数据的时候,我们常用的方法有get和post。可以这样理解,get传值在url中可见,而post传值在url中不可见。
而post传值在url中不可见,是通过浏览器的header头部份将数据发送给指定服务器的。需要通过专门的工具才能看到Post发送的值为什么。你可以下载火狐浏览器(firefox)的插件(firebug)来查看。
我们来了解一些常用的环境变量的键名和值对应的意思
键名含义
$_SERVER["REQUEST_METHOD"]请求当前PHP页面的方法
$_SERVER["REQUEST_URI"] 请求的URI
$_SERVER["SERVER_SOFTWARE"] 用的是哪一种服务器
$_SERVER["REMOTE_ADDR"] 客户的IP地址
$_SERVER["SERVER_ADDR"] 当前服务器的IP地址
$_SERVER["SCRIPT_FILENAME"] 主前请求文件的路径
$_SERVER["HTTP_USER_AGENT"] 当前访问这个网址的电脑和浏览器的情况
$_SERVER["HTTP_REFERER"] 上级来源(用户从哪个地址进入当前网页的)
$_SERVER["REQUEST_TIME"] 当前的时间
函数名不区分大小写。
函数可以重用,不能重载。
函数后如果有默认值和无默认值的参数,通常把无默认值的参数写在最前面
这是错的:
<?php
function test( $a = 20 , $b = 30 , $c ){
echo $a + $b + $c;
}
//重点:重点看这一行执行一下
test( , , 8 );
?>
这是对的:
<?php
function test( $c , $a = 20 , $b = 30){
echo $a + $b + $c;
}
//重点:重点看这一行执行一下
test( 8 );
?>
函数体的变量与函数体外的变量没有关系
<?php
//定义变量$hello的值为10
$hello = 10;
//函数后的参数(形式上的参数,参数)处写上变量名为$hello
function demo( $hello ){
//形参带入了函数体内,函数体内变量$hello 改为了 250
$hello = 250;
//输入2个250相加的结果
echo $hello + $hello;
}
//将函数体外的变量$hello,传入变量的参数处(实际传入的参数,实参),显示出的结果为500
demo($hello);
//此处$hello的值输出,依然为10
echo $hello;
?>
自己调用自己 称之为“递归”,而不是回调
你也知道回调的关键是这个回
既然是回,那么就有一个谁是主体的问题,因为回调是往回调用的意思
我调用了函数A,而函数A在执行过程中调用了我提供的函数B,这个函数B就称为函数A的回调函数
显然主体是函数A
我们知道,函数是完成某个特定功能的代码集合,在函数执行的过程中,一般是不能去干预他的行为的
当函数被设计成带有回调功能时,我们就有可能在函数的执行过程中,通过回调函数去干预他。
GBK和UTF-8:
GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。
UTF-8编码:它是一种全国家通过的一种编码,如果你的网站涉及到多个国家的语言,那么建议你选择UTF-8编码。
GBK和UTF8有什么区别?
UTF8编码格式很强大,支持所有国家的语言,正是因为它的强大,才会导致它占用的空间大小要比GBK大,对于网站打开速度而言,也是有一定影响的。
GBK编码格式,它的功能少,仅限于中文字符,当然它所占用的空间大小会随着它的功能而减少,打开网页的速度比较快。
规定GBK是双字节,也就是一个汉字占用2Bytes。
utf-8是三字节,一个汉字占用三个字节长度的存储空间。
php常用函数:http://www.php.cn/code/1122.html