php赋值传值和引用传址 数组基础 函数基础

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 "<hr>现在数组的个数:$len";

dump($arr);

总结:

PHP中的count()函数只统计存在元素的个数,而JS中的length属性会统计所有的元素个数,包括使用delete删除的。

PHPJS中,数组元素删除后,最大下标依然保留。

 

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 )

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值