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

转义字符

[[email protected]]# 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

赋值传值/引用传值

[[email protected]]# 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

【引用变量】

<!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>

【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>

do while循环

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

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

变量初始化;

do{

循环体代码;

变量更新;

}while(条件表达式);

[[email protected]]# 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>

for循环

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

{

循环体代码;

}

[[email protected] 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>

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

$red+$white==25

$red+$black==28

$white+$black==31

[[email protected]]# 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>

【提高代码质量】

[[email protected]]# 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>

赋值传值和引用传址

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

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

$a = 10;

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

$a = 100;

echo $b;   //10

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

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

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

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

$a = 10;

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

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

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

[[email protected]]# 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>

数组

一、数组的概念

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

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
 
 
[[email protected]]# 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>

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

);

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

[[email protected] 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>

多维数组

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

[[email protected]]# 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>

数组操作函数

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删除的。

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

[[email protected]]# 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>
 
 
[[email protected] study]#

foreach()只能遍历数组

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

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

foreach($arr  as  $value)

{

echo$value;

}

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

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

{

echo$arr[$key];

}

[[email protected]]# 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>

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

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

[[email protected] 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>

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);
 
 
[[email protected]]# 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>

list()

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

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

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

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

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

echo "$a , $b";

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

【计算机运行时间计算】

[[email protected]]# 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>

函数的概念

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

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

<!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>

(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>

(3)默认值参数

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

【函数的参数传递】连接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>

【函数的默认参数】

<!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>

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

<!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>

【默认参数】

<!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>

函数作用域

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>

<!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>

【用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>

日期时间函数

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 )

 

<!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>

时间: 2024-10-12 01:19:25

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

身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X

function checkIdCardNo(idCardNo) { // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if (reg.test(idCardNo) === false) { wx.showToast({ title: '身份证号码不正确!', icon: 'none', }) return false; }

常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等

很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求.所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下.给自己留个底,也给朋友们做个参考. 一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9

身份证号码18个数字代表的意思

一.前言介绍 中华人民共和国公民身份号码是中华人民共和国为中国大陆每个公民从出生之日起编定的唯一的.终身不变的身份代码,在中华人民共和国公民办理涉及政治.经济.社会生活等权益事务方面广泛使用.中华人民共和国公安部负责公民身份号码的编制和组织实施工作. 1999年8月26日中华人民共和国国务院发布<国务院关于实行公民身份号码制度的决定>(国发[1999]15号),这个文件规定自1999年10月1日起在全国建立和实行公民身份号码制度. 二.数字组成方式 1.地址码(身份证号码前六位) 表示编码对象

js面试题--------JS中数字和字符,布尔类型相加相减问题

JS中数字和字符相加相减问题 <html lang="en"> <head> <meta charset="utf-8" /> <title></title> </head> <body> </body> </html> <script type="text/javascript"> var a = 100; var b = &

最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等

from :http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html 很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求.所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下.给自己留个底,也给朋友们做个参考. 一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零

华为 2015 机试 输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin。

1 package 华为机试; 2 //C++ 输入:由数字和字母组成的字符串,例如:333aaabb55ppin 3 //输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin. 4 5 //这句话的核心就是在字符串删除一些字符,感觉处理很复杂,删除哪些字符呢?我们观察发现, 本字符串中删除了一个3,一个a,一个p,满足的规则是啥呢? 333中删除最后一个3,3aa删除了一个a,5pp中删除一个p, 6 //规

常用正则表达式----包括校验数字、字符、一些特殊的需求等等

转自http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html 一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\

[转]最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等

本文出处:http://www.cnblogs.com/zxin/ (作者:zxin) 很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求.所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下.给自己留个底,也给朋友们做个参考. 一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9

1-8 Sass的基本特性-运算

[Sass运算]加法 程序中的运算是常见的一件事情,但在 CSS 中能做运算的,到目前为止仅有 calc() 函数可行.但在 Sass 中,运算只是其基本特性之一.在 Sass 中可以做各种数学计算,在接下来的章节中,主要和大家一起探讨有关于 Sass 中的数学运算. (一).加法 加法运算是 Sass 中运算中的一种,在变量或属性中都可以做加法运算.如: .box { width: 20px + 8in; } 编译出来的 CSS: .box { width: 788px; } 但对于携带不同类