18 PHP数字与字符运算 do while ,for 数组 函数 局部通信 时间日期

转义字符

赋值传值/引用传值

【PHP中的数字与字符运算】

do while循环

for循环

红白黑球问题

【提高代码质量--红白黑球问题】

赋值传值和引用传址

数组

枚举数组

关联数组

数组的创建

使用array()函数创建数组

重载数组下标

多维数组

数组操作函数

print_r()

unset()

count()

foreach()

数组元素的删除和增加函数

array_shift()

array_values()

list()

计算机运行时间计算

函数的概念

函数的语法结构

函数结构说明:

函数参数:值传递参数、引用传递参数、默认值传递

PHP连接MySQL

函数作用域

解决函数内外变量如何通信

用global$GLOBALS 访问函数外面的变量

日期时间函数

date()

time()





转义字符 

[root@nb0001study]# cat index_07.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>网页</title>
</head>
<body>
<?php
$str="<h2>转义字符</h2>";
$str.="老师说:\" 不能使用'换行符'(即\\n) 在网页达到换行的目的a,而应该使用 &lt;br /&gt;标签\"";
$str.="  ,输出变量名\$str";
echo$str;
?>
 </body>
</html>

http://192.168.6.114/study/index_07.php

wKiom1Zo1lbjRUa5AAA3V-zeSNM110.png


 

 

 

 

赋值传值/引用传值

[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>引用变量</title>
</head>
<body>
<?php
/*
3.(赋值传值/引用传值)读程序,写结果:
       a)    $a = 1; $b = $a; $a=$b++; $b = $a++; echo$a, “,”, $b;
       b)    $a = 1; $b = $a; $b++; echo $a, “,”, $b;
       c)    $a = 1; $b = &$a; $b++; echo $a, “,”,$b;
*/
//第一问
$a = 1;
$b = $a;       //$b=1;$a=1
$a = $b++;     //$a=1;$b=2
$b = $a++;     //$b=1;$a=2
echo $a.",".$b;
 
//第二句
$a = 1;
$b = $a;   //$a=1,$b=1
$b++;      //$a=1,$b=2
echo "<hr>$a , $b";
//第三句
$a = 1;
$b = &$a;   //将变量$a的地址,传给了$b,两个变量是相互关联,一变全变
$b++;      //$b=2,  $a=2
echo "<hr>$a , $b";
?>
 </body>
</html>

http://192.168.6.114/study/index_08.php


wKioL1Zo1wijsbRKAAAy60bxLsc997.png

 

 

 

 

 

 

【引用变量】

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>引用变量</title>
</head>
<body>
<?php
$a=3;
$b=4;
$c=sqrt($a*$a+$b*$b);
echo $c;
echosqrt(pow($a,2)+pow($b,2));
?>
 </body>
</html>


wKioL1Zo1zbAQKNhAAAfgbFvdRU918.png

 

PHP中的数字与字符运算】

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>引用变量</title>
</head>
<body>
<?php
$a=3;
$b=4;
$c="4.5";
$d=4.5;
echo$a+$b+$c."<br>";
echo$a+$b+$d;
?>
 </body>
</html>

 

wKiom1Zo1u-iAzMeAAAq9KP3SUY154.png



 

 

 

do while循环

while循环,先判断条件是否成立,再决定是否执行循环体代码,如果第一次条件为falsewhile循环一次都不执行;

do while循环,先执行一次循环体代码,再判断条件是否满足;如果第一次条件为false,循环体代码执行一次;

变量初始化;

do{

       循环体代码;

       变量更新;

}while(条件表达式);

 

 

[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>引用变量</title>
</head>
<body>
<?php
$money=100000;
$n=0;
do
{
    $n++;
    if ($money>50000) {
    $money *=0.95;
    }else {
    $money -=5000;
    }
}while($money>=5000);
echo"你一共可以经过路口{$n}次<br>";
echo"你一共可以经过路口".$n."次<br>";
echo"你一共可以经过路口$n 次<br>";
?>
 
</body>
</html>

wKioL1Zo14zQnYk2AAAxyy73h0k186.png


for循环

for(变量初始化;条件判断;变量更新)

{

       循环体代码;

}

 

[root@nb0001 study]# cat index_08.php 
<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>求100以内偶数的和</title>
</head>
<body>
<?php
$sum=0;
for($i=0;$i<100;$i++){
    if($i%2==0){
         $sum+=$i;
    }
}
echo $sum;
?> 
 
</body>
</html>

wKioL1Zo17KDcvAMAAAz6EM7QGY896.png

 



红白黑球问题:求红白黑球各几个

$red+$white==25

$red+$black==28

$white+$black==31

 

 

[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>红黑白球问题</title>
</head>
<body>
<?php
$num=0;
for($red=1;$red<=28;$red++){
    for($white=1;$white<28;$white++){
        for($black=1;$black<28;$black++){
            $num++;
            if($red+$white==25 &&$red+$black==28 && $white+$black==31) {
              echo "红球:{$red},白球:{$white},黑球:{$black}";
          }
       }
    }      
}
echo"<br>一共循环了".$num."次";
?>
 
</body>
</html>

wKiom1Zo12GRN2ycAAAs4WgiyHg172.png


 

 

【提高代码质量】

[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>红黑白球问题</title>
</head>
<body>
<?php
$num=0;
for($red=1;$red<=28;$red++){
    $black=28-$red;
    $white=31-$black;
    $num++;
    if($red+$white==25 &&$red+$black==28 && $white+$black==31) {
        echo "红球:{$red},白球:{$white},黑球:{$black}";
        echo "<br>此时已经循环了".$num."次";
    }
}
echo"<br>一共枚举".$num."次";
?>
 
</body>
</html>

wKioL1Zo1_fBsBDVAAA4m_8fBxg166.png


 

 

 

赋值传值和引用传址

赋值传值:将一个变量的值“拷贝”一份,传给另一个变量,这两个变量之间没有任何联系,是相互独立的;\

       PHP中,基本数据类型(默认情况下)、数组都是“赋值传值”;

       $a = 10;

       $b = $a;   //赋值传值

       $a = 100;

       echo $b;   //10

引用传址:将一个变量的“地址”传给另一个变量,这两个变量指向的是同一个“事物”,更改其中一个变量,另一个变量也会跟着变。在PHP中,对象资源默认是引用传值。

 

基本数据类型也可以使用“引用传值

基本数据类型,使用一个“&”符号,实现“引用传值”。

//基本数据类型,使用引用传值

$a = 10;

$b = &$a;  //将变量$a的地址,传给了变量$b,这两个变量指向了同一个“地址、事物”

$a = 990;  //对变量$a进行了重新赋值

echo $b;   //测试变量$b的值,结果是990

 

[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>引用传值</title>
</head>
<body>
<?php
// 演示:变量$b 使用引用传值
// 把变量$a的地址传给$b
$a=11;
$b=&$a;
$a=12;
echo $b;
?>
</body>
</html>

 

wKiom1Zo16nDEBMkAAAxi39g0-A432.png



 

 

 

 

数组

一、数组的概念

数组是一组数有序排列的集合。变量是单个值的容器,数组是多个值的容器。

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
 
 
[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>创建数组</title>
</head>
<body>
<?php
$my_arr[]=99;
$my_arr[4]=9;
$my_arr["name"]="user1";
$my_arr["age"]=22;
$my_arr[]=123;
 
 
print_r($my_arr);
?>
</body>
</html>

 

wKioL1Zo2E7jV2g8AAA7zK3gCys137.png



 

 

 

二、使用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

);

在数组中还有两个名字:键名(指数字下标和字符下示)键值是数据。

 

[root@nb0001 study]# cat index_08.php
<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>重载数组</title>
</head>
<body>
<?php
$test_arr = array(
   "c"=>"haha",
   "a"=>"990487026.blog.51cto.com",
     10=> 123456,
     121212,
     "haha PHP 编程!"
);
echo "<pre>";
print_r ($test_arr);
echo "</pre>";
?>
</body>
</html>

wKioL1Zo2ISTPgQ8AAA097Kn73s527.png


 

多维数组

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”] = “[email protected]”;

       $arr[“contact”][“qq”] = “231231231”;

 

 

[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title> 多维数组创建</title>
</head>
<body>
<?php
$my_arr[0][0];
$my_arr["name"]["first_name"]="Zhang";
$my_arr["name"]["last_name"]="Sanfeng";
$my_arr["contact"]["qq"]="1234567890";
$my_arr["contact"]["email"]="[email protected]";
$my_arr["contact"]["mobile"][]="110";
$my_arr["contact"]["mobile"][]="120";
echo"<pre>";
print_r($my_arr);
echo"</pre>";
?>
</body>
</html>

 

wKiom1Zo2DKhJ3I6AABcYdAvevc611.png



 

数组操作函数

print_r()

功能:打印变量的信息,如果是数组的话,以一定的格式来显示键名和键值。

语法结构:print_r($arr)

unset()

功能:删除一个变量的值,或者一个数组的元素,也可以是整个数组。跟JSdelete运算符功能一样。

语法: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中,数组元素删除后,最大下标依然保留。

 

[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title> print_r unsetcount</title>
</head>
<body>
<?php
 
$arr =array(3,4,5);
$len=count($arr);
echo"删除前的数组长度{$len}<br>";
dump($arr);
unset($arr[1]);
$len=count($arr);
echo"<hr>删除后的数组长度{$len}<br>";
dump($arr);
echo"下标依然保留了<br>";
unset($arr);
$len=count($arr);
dump($arr);
echo"<hr>unset整个数组的数组长度{$len}<br>";
$arr[]="222";
$len=count($arr);
dump($arr);
echo"<hr>新加一个元素,数组的数组长度{$len}<br>";
 
 
 
 
functiondump($var){
echo"<pre>";
print_r($var);
echo"</pre>";
}
?>
</body>
</html>
 
 
[root@nb0001 study]#

wKiom1Zo2GqyESi9AABduY93EGg345.png


 

 

 

foreach()只能遍历数组

功能:提供了遍历数组的简单方式,且只能用于数组。

语法1$value是每次循环取出的键值的存放变量。as是系统关键字。

       foreach($arr  as  $value)

{

              echo$value;

}

语法2:每次取出数组中的一个元素,将元素的键名赋给$key,将键值赋给$valueforeach根据判断数组中所有元素是否都循环完毕,如果没有找到新的元素,则退出循环。

       foreach($arr  as  $key => $value)

{

              echo$arr[$key];

}

 

[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title> print_r unsetcount</title>
</head>
<body>
<?php
$arr1 =array(3,4,5);
$arr1["name"]="ZhangSan";
$arr1["age"]="32";
$arr1["address"]="杭州";
$arr1["post"]="33000";
 
foreach($arr1as $key=>$my_value){
echo"\$arr[$key] = $my_value<br>";
}
//使用foreach统计数组长度
$n=0;
foreach($arr1as $value){
$n++;
}
echo"数组\$arr1的长度是$n ";
}
?>
</body>
</html>

wKioL1Zo2QuDEWm4AAApcLDpWec991.png


 

  

数组元素的删除和增加函数

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);

 

 

[root@nb0001 study]# cat index_08.php
<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title> 数组排序</title>
</head>
<body>
<?php
$my_arr = array(3,4,5);
$my_arr["name"]="ZhangSan";
$my_arr["age"]="32";
$my_arr["address"]="杭州";
$my_arr["post"]="33000";
 
echo "排序前:";
dump($my_arr);
 
foreach($my_arr as $my_key=>$my_value){  
//将弹出的值给新的数组
   $arr2[] =array_pop($my_arr);
}
$my_arr=$arr2; //这是赋值传值,不是引用传值
echo "排序后";
dump($my_arr);
 
function dump($var){
echo "<pre>";
print_r ($var);
echo "</pre><hr>";
}
?>
</body>
</html>

wKioL1Zo2THigqtLAABaNpxcZxc700.png

 

 

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);
 
 
[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title> array_values</title>
</head>
<body>
<?php
$my_arr= array(3,4,5);
$my_arr["name"]="ZhangSan";
$my_arr["age"]="32";
$my_arr["address"]="杭州";
$my_arr["post"]="33000";
 
echo"执行array_values前:";
dump($my_arr);
$arr2=array_values($my_arr);
 
 
$my_arr=$arr2;//这是赋值传值,不是引用传值
echo"执行array_values后";
dump($my_arr);
 
list($a,$b,$c)=$my_arr;
echo"$a,$b,$c";
functiondump($var){
echo"<pre>";
print_r($var);
echo"</pre><hr>";
}
?>
</body>

 

wKiom1Zo2P6xdYZSAABN85Rnwvs311.png



 

list()

功能:将数组中的一些赋给一些变量。

语法:array list ( mixed$varname [, mixed$... ] )

//将数组中前两个值赋给两个变量

//list要求数组必须是一个从0开始的枚举数组

list($a,$b) = $arr2;

echo "$a , $b";

 

PHP全局数组:$GLOBALS$_GET[]$_POST[]$_SERVER[]$_FILES

 

 

【计算机运行时间计算】

[root@nb0001study]# cat index_08.php
<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title> array_values</title>
</head>
<body>
<?php
$start=GetTime();
for($i=0;$i<99999;$i++){
echo"杭州总下雨,";
}
 
$end=GetTime();
echo"程序运行时间:".($end-$start);
 
functionGetTime(){
    list($msec,$sec)=explode("",microtime());
    return $msec+$sec;
}
 
 
?>
</body>
</html>

wKioL1Zo2aDgHh2lAAAPT3MtNXU584.png


 

 

 

 

函数的概念

函数就是一段命名的代码块,将常用的功能定义为函数,可以减轻开发的压力,也方便程序的后期维护。

PHP中的函数分类:系统函数、自定义函数

 

一、函数的语法结构

函数名 不分大小写

function functionName([形参1][,形参2][,形参3][,……])

{

       函数的功能代码;

       [return]

}

函数结构说明:

       function是系统关键字,是必须的;

       functionName是函数的名称,跟变量命名一样,但前不加$符号;

       定义函数的参数是形式参数,形参主要用来接收“调用函数时”,传递过来的数据;形参只能在函数中使用;

       调用函数的参数是实际参数,也可以理解为数据;

       return语句是可选的,用于向调用者返回值return语句执行完毕,立即结束函数的运行

 

二、函数参数:值传递参数、引用传递参数、默认值传递

1PHP函数,默认的参数传递就是“值传递参数”

function getMax($a,$b)

{

       if($a>$b)

{

              return$a;

}else

{

       return $b;

}

}

//调用函数

$max = getMax(10,20);

echo “最大值是:$max”;

 

 

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>函数初步</title>
</head>
<body>
<?php
 
 
echoadd_1(4);
 
functionadd_1($a){
       return $a+1;
      
}
 
?>
 </body>
</html>

wKiom1Zo2VmRNAg6AAAhmFMQDhA561.png


 

2)引用传递参数

//如果想在函数内,对函数外变量的值,进行修改,就必须要用引用传值

function getMax(&$x,$y)

{

    $x= $x + $y;

}

$a = 10;

$b = 20;

getMax($a,$b);

getMax(&$a,$b);//把地址传进去也可以

echo $a;  // 结果是30

 

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>函数初步</title>
</head>
<body>
<?php
$a=5;
$b=7;
GetMax($a,$b);
echo $a;
 
 
functionGetMax(&$x,$y){
       $x+=$y;
       echo $b; //函数内无法访问函数外的变量
     // 用引用传值,在函数内修改函数外的数值
}
 
?>
 </body>
</html>

wKiom1Zo2Xvis0bhAAAqoMC6Uec563.png


 

 

 

 

 

3)默认值参数

默认参数一般放在其它参数的右侧。


wKioL1Zo2j_A-KpaAAEYc3QiMww745.png



 

【函数的参数传递】连接MySQL的函数

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>PHP连接MySQL</title>
</head>
<body>
<?php
 
ConnMySQL("127.0.0.1","root","root");
 
functionConnMySQL($DB_HOST,$DB_USER,$DB_PASSWORD){
$link=mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);
if($link)echo "MySQL连接成功";
elseecho "MySQL连接失败";
}
 
?>
 </body>
</html>

wKiom1Zo2fTjzrZHAAAjt_ANeTI208.png


 

【函数的默认参数】

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>PHP连接MySQL</title>
</head>
<body>
<?php
ConnMySQL();
functionConnMySQL($DB_HOST="127.0.0.1",$DB_USER="root",$DB_PASSWORD="root"){
$link=mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);
if($link)echo "MySQL连接成功";
elseecho "MySQL连接失败";
}
?>
 </body>
</html>

wKioL1Zo2ojw2NgZAAAvzD_WyDs131.png


【哪个参数发生变化,就修改哪个】

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>PHP连接MySQL</title>
</head>
<body>
<?php
ConnMySQL("localhost","admin");
functionConnMySQL($DB_HOST="127.0.0.1",$DB_USER="root",$DB_PASSWORD="root"){
$link=mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);
if($link)echo "MySQL连接成功";
elseecho "MySQL连接失败";
}
?>
 </body>
</html>

wKiom1Zo2jPgceIWAABmOnr4R-8651.png


【默认参数】

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>PHP连接MySQL</title>
</head>
<body>
<?php
ConnMySQL("localhost","root");
functionConnMySQL($DB_HOST="127.0.0.1",$DB_USER="root",$DB_PASSWORD="root"){
$link=mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);
if($link)echo "MySQL连接成功";
elseecho "MySQL连接失败";
}
action();
action("张三");
action("鲁迅","写作");
 
functionaction($a="鲁滨孙",$b="打架"){
       echo " <br>{$a}正在$b";    
}
 
?>
 </body>
</html>

wKioL1Zo2s2QWdVQAAA1vL8GfIM277.png


 

 

 

 

 

函数作用域

JS的作用域:

全局变量:是在函数外部定义的变量,可以在函数内和函数外使用。

局部变量:只能在函数内使用。

 

PHP的作用域:默认情况下,PHP中函数内外的变量无法通信。

       全局变量:在函数内外都可以使用的变量。

       局部变量:默认情况下,函数内外的变量都是局部变量。

 

解决函数内外变量如何通信?

1)在函数中,使用global关键字,声明为全局变量(推荐使用)

//变量作用域

$a = 100;

function getValue()

{

       //使用global关键字声明为全局变量

       global$a;

       $a +=200;

       echo $a;  //a=300

}

getValue();

echo $a; //a=300

 

【函数内无法访问函数外的变量】

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>局部变量</title>
</head>
<body>
<?php
$a=10;
GetValue();
functionGetValue(){
       echo $a; 
}
?>
 </body>
</html>

wKioL1Zo2y3DfKrjAAAsVs-4_I4978.png

<!DOCTYPE html PUBLIC"-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>局部变量</title>
</head>
<body>
<?php
 $a=10;
GetValue();
echo "<br>".$a;
function GetValue(){
       global  $a;    
       echo  "<br>".$a;
}
?>
 </body>
</html>

wKioL1Zo24rQIqpbAAAqwCPp3qA704.png


 

【用global $GLOBALS 访问函数外面的变量】

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />
 <title>global $GLOBALS </title>
</head>
<body>
<?php
 
functionGetValue(){
        global $a;    
        echo "<br>".$a;
}
 
functionGetValue2(){
        echo $GLOBALS["a"]+=90;
}
 
$a=10;
GetValue();
echo"<hr>";
GetValue2();
 
?>
 </body>
</html>

 

wKiom1Zo2zeCV5nZAAA1RGRRxz0682.png


 

日期时间函数

PHP也可获取服务器的系统时间信息。JS获取的是客户端系统时间信息。

date()

功能:格式化一个本地时间/日期

语法:string date ( string$format [, int$timestamp ])

返回值:返回的是一个字符串的日期时间信息。

参数:

              $format:指要显示的时间日期的格式;

              $timestamp:指定一个时间戳(Unix纪元到现在的秒数),如果省略,则认为是time()

 

举例:echo date(“Ymd H:i:s”,time());

 

time()

功能:返回当前的 Unix 时间戳

语法:int time( void )

 

<!DOCTYPEhtml PUBLIC "-//W3C//DTDXHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>

<metahttp-equiv="Content-Type"content="text/html;charset=utf-8" />

<title>时间日期函数</title>

</head>

<body>

<?php

echo"<pre>";

 

echo"date函数的使用<hr>";

echo"分割线想怎么改就怎么改<br>";

echodate("Y--m--d H:i:s");

 

echo"<br>";

echodate("i");

 

echo"<hr>time函数的使用<br>";

echotime();

 

echo"</pre>";

 

echo"<hr> date函数,判断50天后是几月几号<br>";

$now=time();

$next=$now+(60*60*24*50);

echodate("Y-m-d H:i:s",$next);

?>

 </body>

</html>

 

wKiom1Zo203CjgHYAABRSqKSqRM219.png


 

 


本文出自 “魂斗罗” 博客,谢绝转载!

你可能感兴趣的:(while,函数,数组,for,18,do,时间日期,局部通信,PHP数字与字符运算)