do while循环
while循环,先判断条件是否成立,再决定是否执行循环体代码,如果第一次条件为false,while循环一次都不执行;
do while循环,先执行一次循环体代码,再判断条件是否满足;如果第一次条件为false,循环体代码执行一次;
变量初始化;
do{
循环体代码;
变量更新;
}while(条件表达式);
for循环
for(变量初始化;条件判断;变量更新)
{
循环体代码;
}
/*
求:1-100间所有偶数的和
*/
$sum = 0; //和
for($i=1;$i<100;$i++)
{
//判断是否是偶数
if($i%2==0)
{
$sum+= $i; // $sum = $sum + $i
}
}
echo "和是:$sum";
赋值传值和引用传址
赋值传值:将一个变量的值“拷贝”一份,传给另一个变量,这两个变量之间没有任何联系,是相互独立的;\
在PHP中,基本数据类型(默认情况下)、数组都是“赋值传值”;
$a = 10;
$b = $a; //赋值传值
$a = 100;
echo $b; //10
引用传址:将一个变量的“地址”传给另一个变量,这两个变量指向的是同一个“事物”,更改其中一个变量,另一个变量也会跟着变。在PHP中,对象和资源默认是引用传值。
基本数据类型也可以使用“引用传值”
基本数据类型,使用一个“&”符号,实现“引用传值”。
//基本数据类型,使用引用传值
$a = 10;
$b =&$a;//将变量$a的地址,传给了变量$b,这两个变量指向了同一个“地址、事物”
$a = 990;//对变量$a进行了重新赋值
echo $b;//测试变量$b的值,结果是990
数组
一、数组的概念
数组是一组数有序排列的集合。变量是单个值的容器,数组是多个值的容器。
JS中数组的创建:var arr = new Array(10,20,30,40,50,60);
PHP中数组的创建:$arr= array(10,20,30,40,50);
二、数组的分类
PHP中数组分类:枚举数组、关联数组、多维数组。
(1)枚举数组:跟JS中的数组一样
枚举数组,就是数组下标是从0开始的正整数。比如:$arr = array(10,20,30,40,50);
$arr[1]=10;
$arr[2]=20;
$arr[3]=30;
……
(2)关联数组:数组的下标是字符串,字符串的命名跟变量一样
$arr[“name”]= “周更生”;
$arr[“sex”]= “男”;
$arr[“school”]= “北京科技大学”;
…………
数组的创建
一、使用[ ]来创建数组
JS中创建数组:
var arr = [10,20,30,40];
arr[4] = 40; //追加数组元素
arr[5] = 50;
PHP中创建数组:
$arr[0] = 10; //如果$arr不存在,则创建一个数组
$arr[] = 20; //如果没有指定下标,则下标是“最大数字下标+1”
$arr[10] = 100; //添加数组元素
$arr[] = 110; //下标是11
$arr[“name”] = “张立峰”; //增加一个字符下标的元素
$arr[“contact”] =”13011057863”; //增加一个字符下标的元素
$arr[] = 990; //最大下标是12
二、使用array()函数创建数组
JS中数组的创建:
var arr = new Array(10,20,30,40);
arr[4] = 50; //JS中能使用空的[]来增加元素
……
PHP中数组的创建:
$arr = array(10,20,30,40);
$arr[4] = 50;
$arr[] = 60;
$arr[“tel”] = “13011067654”;
三、重载数组下标
PHP中可以重新设置元素的下标,使用“=>”运算符。
$arr = array(
“name” =>10,
“tel” =>”1301102345”,
10 => 100,
78
);
在数组中还有两个名字:键名(指数字下标和字符下示)、键值是数据。
多维数组
在JS中,严格来说只有一维数组。
var arr = new Array();
arr[0] = 0;
arr[1] = new Array(); //再创建一个空数组,不支持arr[1][0]= 100这种方式创建数组
arr[1][0] = 100;
arr[1][1] = 200;
在PHP中,是支持真正的多维数组的,最多可以嵌套60层数组。
$arr[0][0] = 100;
$arr[0][1] = 200;
$arr[“contact”][“tel”] = “020-110120130”;
$arr[“contact”][“mobile”] = “130110233234”;
$arr[“contact”][“email”] = “beijing2000@126.com”;
$arr[“contact”][“qq”] = “231231231”;
数组操作函数
print_r()
功能:打印变量的信息,如果是数组的话,以一定的格式来显示键名和键值。
语法结构:print_r($arr)
unset()
功能:删除一个变量的值,或者一个数组的元素,也可以是整个数组。跟JS的delete运算符功能一样。
语法:void unset ( mixed $var [, mixed $... ] )
注意:如果要删除一个数组元素的话,删除的是数组元素的值,而下标所占的空间依然保留。
如果删除整个数组的话,数组的最大下标将重置为0。
举例:unset($arr[0]) 、 unset($arr)
count()
功能:统计数组中元素的个数,或者对象中属性的个数。
语法:int count ( mixed $var [, int $mode = 1 ] )
参数:$mode默认值是0,只对一维数组进行个数统计;如果为1,则可以对多维数组中的元素进行统计。
举例:$length =count($arr);
//unset()函数和count()函数的使用
$arr =array(10,20,30,40);
$len = count($arr);
echo "原始数组的个数:$len";
dump($arr);
unset($arr[0]);//删除下标为0的数组元素
$len = count($arr);
echo "
现在数组的个数:$len";
dump($arr);
总结:
PHP中的count()函数只统计存在元素的个数,而JS中的length属性会统计所有的元素个数,包括使用delete删除的。
PHP和JS中,数组元素删除后,最大下标依然保留。
foreach()只能遍历数组
功能:提供了遍历数组的简单方式,且只能用于数组。
语法1:$value是每次循环取出的键值的存放变量。as是系统关键字。
foreach($arr as $value)
{
echo$value;
}
语法2:每次取出数组中的一个元素,将元素的键名赋给$key,将键值赋给$value。foreach根据判断数组中所有元素是否都循环完毕,如果没有找到新的元素,则退出循环。
foreach($arr as $key =>$value)
{
echo$arr[$key];
}
数组元素的删除和增加函数
JS中删除和添加数组元素:arr.shift()、arr.pop()、arr.unshift()、arr.push()
PHP中删除第一个数组元素:array_shift()
PHP中删除最后一个数组元素:arr_pop()
PHP中在最前面添加一个元素:array_unshift()
PHP中在最后添加一个元素:array_push()
array_shift()
语法:mixed array_shift ( array &$array)
返回值:被删除的元素的值将被返回
注意:删除第一个元素后,数组的总长度减一。
//将以下数组中的各元素进行倒序排列
$arr = array(1,2,3,4,5,6,7);
foreach($arr as $key=>$value)
{
//从原数组中,每删除一个元素,将删除的值赋给一个新的数组元素
$arr2[]= array_pop($arr);
}
$arr = $arr2;//赋值传值,并不是引用传值
dump($arr);
array_values()
功能:返回数组中所有的值并给其建立数字索引,将关联数组转成枚举数组。
语法:array array_values (array $input )
//将非枚举数组,转成枚举数组
$arr["a"] = 100;
$arr[10] = 200;
$arr["b"] = 300;
$arr[20] = 400;
$arr2 = array_values($arr);
dump($arr2);
list()
功能:将数组中的一些赋给一些变量。
语法:array list ( mixed $varname [, mixed $... ] )
//将数组中前两个值赋给两个变量
//list要求数组必须是一个从0开始的枚举数组
list($a,$b) = $arr2;
echo "$a , $b";
PHP全局数组:$GLOBALS、$_GET[]、$_POST[]、$_SERVER[]、$_FILES等
函数的概念
函数就是一段命名的代码块,将常用的功能定义为函数,可以开发的压力,也方便程序的后期维护。
PHP中的函数分类:系统函数、自定义函数
一、函数的语法结构
function functionName([形参1][,形参2][,形参3][,……])
{
函数的功能代码;
[return值]
}
函数结构说明:
function是系统关键字,是必须的;
functionName是函数的名称,跟变量命名一样,但前不加$符号;
定义函数的参数是形式参数,形参主要用来接收“调用函数时”,传递过来的数据;形参只能在函数中使用;
调用函数的参数是实际参数,也可以理解为数据;
return语句是可选的,用于向调用者返回值,return语句执行完毕,立即结束函数的运行;
二、函数参数:值传递参数、引用传递参数、默认值传递
(1)PHP函数,默认的参数传递就是“值传递参数”
function getMax($a,$b)
{
if($a>$b)
{
return$a;
}else
{
return $b;
}
}
//调用函数
$max = getMax(10,20);
echo “最大值是:$max”;
(2)引用传递参数
//如果想在函数内,对函数外变量的值,进行修改,就必须要用引用传值。
function getMax(&$x,$y)
{
$x= $x + $y;
}
$a = 10;
$b = 20;
getMax($a,$b);
echo $a; //结果是30
(3)默认值参数
默认参数一般放在其它参数的右侧。
函数作用域
JS的作用域:
全局变量:是在函数外部定义的变量,可以在函数内和函数外使用。
局部变量:只能在函数内使用。
PHP的作用域:默认情况下,PHP中函数内外的变量无法通信。
全局变量:在函数内外都可以使用的变量。
局部变量:默认情况下,函数内外的变量都是局部变量。
解决函数内外变量如何通信?
(1)在函数中,使用global关键字,声明为全局变量(推荐使用)
//变量作用域
$a = 100;
function getValue()
{
//使用global关键字声明为全局变量
global$a;
$a +=200;
echo $a; //a=300
}
getValue();
echo $a; //a=300
日期时间函数
PHP也可获取服务器的系统时间信息。JS获取的是客户端系统时间信息。
date()
功能:格式化一个本地时间/日期
语法:string date ( string $format [, int $timestamp ])
返回值:返回的是一个字符串的日期时间信息。
参数:
$format:指要显示的时间日期的格式;
$timestamp:指定一个时间戳(从Unix纪元到现在的秒数),如果省略,则认为是time()
举例:echo date(“Y年m月d日 H:i:s”,time());
time()
功能:返回当前的 Unix 时间戳
语法:int time( void )