初识 PHP
php是一种运行在服务端的跨平台的脚本语言。
PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
PHP脚本以<?php 开始,以?>结束
php也支持<? ?> 不过要修改php.ini文件中short_open_tag = Off 改成short_open_tag = On一、 输出语句
1、echo
echo可以输出一个或者多个字符串,逗号隔开
使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
2、print输出
print只能输出一个字符串,成功输出则返回1。
可以使用括号,也可以不使用括号: print 或 print()。
3、print_r()
可以把字符串和数字简单地打印出来,只能输出一个字符串,而数组则以括起来的键和值得列表形式显示,并以Array开头
4、var_dump()
判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
var_dump返回表达式的类型与值而print_r仅返回结果,相比调试代码使用var_dump更便于阅读。
二、注释
1、单行注释:// 这是PHP单行注释
2、多行注释:/* 这是PHP多行注释 */
三、数据类型
1、数据类型的获取与判断
a、获取类型gettype()
b、判断类型is_类型名()
2、String(字符串)
a、任何文本放在单引号和双引号中
b、"hello world" 或者 "hello PHP"
3、Integer(整型)
a、整数必须至少有一个数字
b、整数不能包含逗号或者空格
c、整数可以是正数或者负数
4、Float(浮点型)
a、带小数部分的数字
5、Boolean(布尔型)
a、true/false
b、通常用于判断
6、Array(数组)
a、数组可以在一个变量中存储多个值
b、array('volvo','bmw','toyota')
7、Object(对象)
a、对象必须声明
b、使用class关键字声明类对象
c、类是包含属性和方法的结构
color = $color; } function what_color() { return $this->color; }}?>
8、Null(空值)
a、Null表示变量没有值
b、Null是数据类型为Null的值
9、对类型转换的四种方式
a、对变量的重写:
b、intval() floatval() strval()
< ?php $str="123.9abc"; $int=intval($str); //转换后数值:123 $float=floatval($str); //转换后数值:123.9 $str=strval($float); //转换后字符串:"123.9" ?>
c、(数据类型)变量
(int) (bool) (float) (string) (array) (object)< ?php $num1=3.14; $num2=(int)$num1; var_dump($num1); //输出float(3.14) var_dump($num2); //输出int(3) ?>
d、类型转换settype(变量名,类型)
";var_dump($num); //输出int(12)?>
四、字符段处理
1、去除空格
a、trim(string) 去除字符串两边空格
b、ltrim(sring,'特殊字符') 去除字符串左边空格和特殊字符(特殊字符是可选参数)
c、rtrim(sring,'特殊字符') 去除字符串右边空格和特殊字符(特殊字符是可选参数)
例如:
$str="(:@_@ hello world! @_@:)";$a=ltrim($str);//去掉左边空格$aa=ltrim($str,"(:@_@ ");//去掉左边空格和左边的特殊字符(:@——@$b=rtrim($str);//去掉右边空格$bb=rtrim($str," @_@:)");//去掉右边空格和特殊字符@_@:)$cc=ltrim($str,"(:@_@ hell");//去掉左边的(:@——@和hellecho $str."".$a."".$aa."".$b."".$bb."".$cc;
2、字符串截取
a、substr(字符串名,截取开始位置,截取长度)
$str="百度一下";$aa=substr($str,1,2);echo $aa;
3、字符串分割
explode() 返回值存到数组中,即返回数组
$str="hello|world|i|am|com";$aa=explode("|",$str);//以“|”为分割界限,对字符串进行分割var_dump($aa);//查看一下是不是数组echo $aa[2];//返回数组的索引2;
3、字符串合成
implode() 又名join() 返回字符串
$str="hello|world|i|am|com";$aa=explode("|",$str);var_dump($aa);echo $aa[2];$bb=implode("@",$aa);//将上边得到的数组$aa,合成得到一个字符串类型的变量$bb,并用“@”把原来数组每一项隔开,组成新字符串var_dump($bb);echo $bb;
4、字符串替换
str_replace(替换前的字符,替换后字符,字符串名)
$str="hello world";$aa=str_replace("hell","1234",$str);echo $aa;
5、检索字符串中子串出现的次数
substr_count(字符串名,'查找的字符串')
$str="aaaabbbbbbbbbbbbbbaaaacccccccccccaaaaffffffffffaaaarrrrrrrrr";$aa=substr_count($str,"aaaa");echo $aa;//输出4
6、大小写转换
strtoupper()函数--将字符串转换为大写 strtolower()函数--将字符串转换为小写
$str="Hello World!";$str1=strtoupper($str);$str2=strtolower($str);echo $str1."".$str2;
7、获取字符串长度
strlen()
$str="Hello World!";echo strlen($str);//输出12
8、定位查找
strops(字符串名,要查找的字符)函数--查找字符第一出线的索引
$str="aaaabbaaaaaaaaaaaaaaaaaaabbaaaaaaaa";$str1=strpos($str,"b");echo $str1;//输出4
9、货币数据字符的格式化输出
number_format()函数--把数字以货币的形式输出
$str="19846700";$str1=number_format($str);echo $str1;//输出19,846,700
10、日期时间的格式化输出 date()函数
echo date("Y-m-d H-i-s");//输出2016-12-14 12-12-52
五、变量
1、变量
$变量名=值
变量名必须以字母或者下划线开始
变量只能包含字母、数字和下划线
变量名是区分大小写的 $y 和 $Y 是两个不同的变量
2、对变量的一系列判断
a、isset():判断变量是否已存在 如果有值 返回true 否则返回false
b、unset():把变量删除(释放)掉
c、empty():判断变量是否为空
d、is_null:判断变量是否为NULL
e、具体判断表:
变量 empty is_null isset
$a=”” true false true $a=null true true false var $a true true false $a=array() true false true $a=false true false true $a=15 false false true $a=1 false false true $a=0 true false true $a=”0” true false true $a=”true” false false true $a=”false” false false true3、可变变量
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名
六、运算符
1、算数运算符
运算符 + - * / 复合赋值运算符:+= -= *= /= %= .=
数字型与字符型的数字 是可以用算术运算符运算的 结果的类型是数字型
2、自增与自减
++ --
对运算数进行递增操作 对运算数进行递减操作
在运算数之前,先递增或递减,再赋值:
$i = 1;$a = i++; //$a = 1; 此时i为2,但赋给a的是1
在运算数之后,先赋值,再递增或递减
$i = 1;$a = ++i; //$a = 2; 先执行i加1 再赋值给a
3、关系运算符
1、大小关系检测
> >= < <=:满足返回true,不满足返回false
2、等值关系检测
== != <>(不等) :判断返回值是否相等或者不等
=== !==:判断返回值及返回类型是否相等或者不等
$aa = 10;$bb = "10";alert($aa === $bb);
3、逻辑运算符
与:and 如果 x 和 y 都为 true,则返回 true
或 or 如果 x 和 y 至少有一个为 true,则返回 true
异或 xor 如果 x 和 y 有且仅有一个为 true,则返回 true
与 && 如果 x 和 y 都为 true,则返回 true
或 || 如果 x 和 y 至少有一个为 true,则返回 true
非 ! 如果 x 不为 true,则返回 true
4、三元运算符
表达式 ? expr1: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
$max = a>b?a:b;
5、数组运算符
x + y :集合 x 和 y 的集合
x == y :相等 如果 x 和 y 具有相同的键/值对,则返回 true
x === y 恒等 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y 不相等 如果 x 不等于 y,则返回 true
x <> y 不相等 如果 x 不等于 y,则返回 true
x !== y 不恒等 如果 x 不等于 y,则返回 true
七、字符串处理函数
1、去除空格
trim(string) 去除字符串两边空格
ltrim(sring,'特殊字符') 去除字符串左边空格和特殊字符(特殊字符是可选参数)
rtrim(sring,'特殊字符') 去除字符串右边空格和特殊字符(特殊字符是可选参数)
$str="(:@_@ hello world! @_@:)";$a=ltrim($str);//去掉左边空格$aa=ltrim($str,"(:@_@ ");//去掉左边空格和左边的特殊字符(:@——@$b=rtrim($str);//去掉右边空格$bb=rtrim($str," @_@:)");//去掉右边空格和特殊字符@_@:)$cc=ltrim($str,"(:@_@ hell");//去掉左边的(:@——@和hellecho $str."".$a."".$aa."".$b."".$bb."".$cc;
2、字符串截取
substr(字符串名,截取开始位置,截取长度)
$str="百度一下";$aa=substr($str,1,2);echo $aa;
3、字符串分割
explode() 返回值存到数组中,即返回数组
$str="hello|world|i|am|com";$aa=explode("|",$str);//以“|”为分割界限,对字符串进行分割var_dump($aa);//查看一下是不是数组echo $aa[2];//返回数组的索引2;
4、字符串合成
implode() 又名join() 返回字符串
$str="hello|world|i|am|com";$aa=explode("|",$str);var_dump($aa);echo $aa[2];$bb=implode("@",$aa);//将上边得到的数组$aa,合成得到一个字符串类型的变量$bb,并用“@”把原来数组每一项隔开,组成新字符串var_dump($bb);echo $bb;
5、字符串替换
str_replace(替换前的字符,替换后字符,字符串名)
$str="hello world";$aa=str_replace("hell","1234",$str);echo $aa;
6、检索字符串中子串出现的次数
substr_count(字符串名,'查找的字符串')
$str="aaaabbbbbbbbbbbbbbaaaacccccccccccaaaaffffffffffaaaarrrrrrrrr";$aa=substr_count($str,"aaaa");echo $aa;//输出4
7、大小写转换
strtoupper()函数--将字符串转换为大写 strtolower()函数--将字符串转换为小写
$str="Hello World!";$str1=strtoupper($str);$str2=strtolower($str);echo $str1."".$str2;
8、获取字符串长度
strlen()
$str="Hello World!";echo strlen($str);//输出12
9、定位查找
strops(字符串名,要查找的字符)函数--查找字符第一出线的索引
$str="aaaabbaaaaaaaaaaaaaaaaaaabbaaaaaaaa";$str1=strpos($str,"b");echo $str1;//输出4
10、货币数据字符的格式化输出
number_format()函数--把数字以货币的形式输出
$str="19846700";$str1=number_format($str);echo $str1;//输出19,846,700
11、日期时间的格式化输出 date()函数
echo date("Y-m-d H-i-s");//输出2016-12-14 12-12-52
八、数组
1、数组是一个能在单个变量中存储多个值的特殊变量,并且可以根据键访问其中的值
2、数组分类
a、索引数组:用数字作为键名的数组一般叫做索引数组
$cars=array("Volvo","BMW","Toyota");echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
b、关联数组:用字符串表示键的数组就是关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");echo "Peter is " . $age['Peter'] . " years old.";
c、多维数组:包含一个或者多个数组的数组
3、数组定义方式
a、$array = array(); 空数组
b、$array = array(1,2,3,4,5); 索引数组
c、$array = array(1=>"aa","bb"=>2); 关联数组
4、取值
$array[0] $array["bb"]
5、遍历数组
遍历方式:
for循环 只能遍历索引数组
foreach 遍历索引 foreach($array as $value)
遍历关联 foreach ($array1 as $key => $value)
each( ) 返回数组中当前的键/值对并将数组指针向前移动一步
$attr = array('name'=>'zhangsan','age'=>20);var_dump(each($attr));//each($attr)[1] each($attr)[0]var_dump(each($attr));//each($attr)[1] each($attr)[0]
list( ) 从数组中取值赋给一组变量
$attr = array(1,2,3);list($a,$b,$c)=$attr; //将右侧数组里面的元素赋值给参数列表里面的变量 echo $a,$b,$c;
each( )和list( )结合
$attr1 = array("one"=>1,"two"=>2,"3"=>3);//$attr1 = array(1,2,3); while(list($k,$v) = each($attr1)) { /*echo "{$k}--{$v}"; */ echo $k.'--'.$v; }
使用指针
current() 取得目前指针位置的内容资料
key() 取得目前指针位置的索引值
prev() 将数组的内部指针倒回一位
next() 将数组中的内部指针向前移动一位
end() 将数组的内部指针指向最后一个单元
reset() 将数组的内部指针指向第一个单元
$attr1 = array("one"=>1,"two"=>2,"3"=>3)echo current($attr1); //取指针指向的当前元素的value值echo key($attr1); //取指针指向的当前元素的keynext($attr1); //将指针向下调一个prev($attr1); //将指针向上调一个end($attr1); //将指针调向最后一个元素reset($attr1); //将指针复位
九、php中单引号、双引号、花括号
单引号,单引号中的内容会被直接当成一个字符串,单引号中无法输出变量值
$a = 'abcd';echo '$a'; // 输出结果就是 $a,而不是 abcd
双引号,双引号中可以输出简单变量,不能输出复杂变量,否则会报错
$a = 'abcd';$b = array('aaa' => 'abcd');echo "$a"; // 输出 abcd,因为双引号中可以解析简单变量echo "$b['aaa']"; // 直接报错,因为双引号中不能解析复杂变量
花括号,花括号中既可以输出简单变量,也可以输出复杂变量,如数组、对象等;
$a = 'abcd';$b = array('aaa' => 'abcd', 'bbb' => array(12,34));echo "{$a}"; // 输出 abcdecho "{$b['aaa']}"; // 输出 abcdecho "{$b['bbb'][1]}"; // 输出 34