(30)PHP中函数的使用(下)(31)数据的概述及分类与声明

(30)PHP中函数的使用(下)

1. 内部函数: PHP可以在函数内部再声明函数

目的就是在函数的内部调用
就是用来帮助外部函数完成一些子功能的。
*
function score($php, $java,$dotnet){
function php($php){
if($php>60)
return "及格";
else
return "不极格";
}


function java($java){
if($java>60)
return "及格";
else
return "不及格";
}


function dotnet($dotnet){
if($dotnet > 60)
return "及格";
else
return "不及格";
}


$total=$php+$java+$dotnet;


$agv=$total/3;


echo "你的php成绩是 {$php} 分, ".php($php)."<br>";
echo "你的java成绩是 {$java} 分, ".java($java)."<br>";
echo "你的dotnet成绩是 {$dotnet} 分, ".dotnet($dotnet)."<br>";


echo "你的总分是: {$total} <br>";
echo "你的平均分是:{$agv} <br>";
}




score(50, 90, 70);
2. 递归函数


 function demo($num){
    echo $num."<br>";


if($num>0)
demo($num-1);
else
echo "--------------------<br>";


echo $num."<br>";
    }


    demo(10);


3. 重用函数(使用自己定义的函数库)并不函数所有的函数都可以当系统指令来用
    require
    include
    require_once
   include_once
  
   .txt  .html  .php 可以包含这几种格式的文件
require与include之间的区别与require_once和include_once之间的区别是一样的,所以我们任意搞懂两个。我们只要知道什么时候用哪个就可以了


 1、require: 用于静态包含
 2、include: 用于动态包含(根据不同的条件去找哪个文件包含)
 if($className=="Action"){
  include "action/".$className.".php";
  }elseif($className=="Model"){
  include "model/".$className.".php";
  }else{
  include "public/".$className.".php";
  }
 里面是动态包含。


 include(文件名);   //将文件名调用到这个页面
 include "文件名";  //也可以这样用。都有两种用法。
      
    echo "@@@@@@@@@@@2";
      echo("@@@@@@@@@@@@@");
     break
    exit;
 
   include "config.inc.php";  //inc是include的缩写,证明这个文件已经被包含了。不可以重复包含。如果这个文件里是一个定义函数,那么就会被定义两次。变成重复定义,会错误提示。
   include("config.inc.php")


   include_once "test.txt";   //不可以直接复制,凡是包含进来了就表明已经将这个文件翻译成PHP文件。一个文件可以多次包含。
   include_once "test.txt";
   include_once "test.txt";


   require_once("test.html");  //在做页面的时候,很可能会搞混,不知道哪个页面被包含过。但是加上once会判断,哪个文件被包含过,哪个没有被包含过。但是因为它要判断是否被包含过,要多执行一部分功能,所以,效率相比较会比较低。假如我们知道包含的实际情况是,尽量使用不要带once的。
   require_once("test.html");
   require_once("test.html");


   include "test.inc.php";
   include_once "test.inc.php";


   echo $a."<br>";


   test();


4. 一些系统函数的使用


function total($dirname, &$dirnum, &$filenum){       //带&必须要赋值的
   $dir=opendir($dirname);      //打开目录资源
   readdir($dir)."<br>";        //读取目录资源
   readdir($dir)."<br>";      //$dir是资源,第一次读取就是资源里第一个文件,第二次读取就是资源里第二个文件。
   while($filename=readdir($dir)){
  $newfile=$dirname."/".$filename;


  if(is_dir($newfile)){
total($newfile, $dirnum, $filenum);  //会继续寻找子目录里的子目录
    $dirnum++;
   }else{
    $filenum++;
   }
   }
  closedir($dir);//把资源类型关掉 
    }


   $dirnum=0;     //目录数
   $filenum=0;     //文件数
   total("C:/AppServ/www/phpMyAdmin", $dirnum, $filenum);  //统统用正斜杠,因为反斜杠在双引号里会变成转义字符。


   echo "目录总数:".$dirnum."<br>";
   echo "文件总数:".$filenum."<br>";






is_dir($dirname)//判断是否为目录?



(31)数据的概述及分类与声明
因为PHP是弱类型语言,所以PHP数组既可以存放任意长度的数据,也可以存放任意类型的


数据。这是别的语言达不到的。
一、数组的概述
1. 数组的本质:管理和操作一组变量,目的就是成批处理
2. 数组是复合类型,可以存放多个变量
3. 与其他语言不一样的是PHP数组中可以存储任意长度的数据,也可以存储任意类型的数



int  a [10]={1,2,3,4,5,6,7,8,9,10}是个整数类型的数值。
4. 数组就可以完成其它语言数据结构的功能(链表, 队列, 栈, 集合类)
二、数组的分类
数组中存有多个单元,(单元称为元素)
每个元素(下标/[键]和值)
单访问元素时候,都是通过下标(键)来访问元素,不管是取值还是赋值。
1. 一维数组, 二维数组, 三维数组 。。。 多维数组(二维数组以上都称为多维数组



 (其他的语言称为数组的数组, 就是在数组中存有其它的数组)
2. PHP中有两种数组,使用的几率各百分之五十。
索引数组:就是下标是顺序整数作为索引  
关联数组:就是下标是字符串作为索引
根据数组里的形式来判断用索引还是关联。有规律的数组一般用索引数组。
下标默认是从0开始的。$class1[5]在$class1中取出下标是5的数值。
下标(整数, 字符串)只有这两种,这两种可以混合成一个数组。
三、数组多种声明方式
1. 直接为数组元素赋值
//索引数组,直接赋值
$user[0]=1;   //0-4是下标
$user[1]="zhangsan";
$user[2]=10;
$user[3]="nan";
$user[4]="aaa@bb.com";
echo '<pre>';  //原格式输出
print_r($user);
echo '</pre>';


a.如果索引下标不给出,就会从0开始顺序索引
b.如果给出索引下标,下一个就会是从最大的开始增1
c.如果后面出现前面的下标,如果是赋值就是为前面的元素重新赋值
例如;
$user["id"]=1;
$user["name"]="zhangsan";
$user["age"]=10;
$user["sex"]="nan";
$user["email"]="aaa@bb.com";


echo '<pre>';
print_r($user);
echo '</pre>';
$user["age"]=90;//为年龄重新赋值
 echo $user["age"]; //输出年龄
d. 混合声明时,索引和关联不互相影响(不影响索引下标的声明)例如;
$user["id"]=1;
$user[]=66;
$user["name"]="zhangsan";
$user["age"]=10;
$user[]=77;
$user["sex"]="nan";
$user["email"]="aaa@bb.com";
结果为:
[id]=>1
[0]=>66
[name]=>zhangsan
[age]=>10
[1]=>77
[sex]=>nan
[email]=>aaa@bb.com
2. 使用array()函数
a. 默认是索引数组


例如;
$user=array(1, "zhsangsan", 10, "nan", "aaa@bbb.com");
echo '<pre>';
print_r($user);
echo '</pre>';


b.如果为关联数组和索引数组指定下标,使用 键=>值


$user=array("id"=>1, "name"=>"zhsangsan", "age"=>10, 100=>"nan", 


"aaa@bbb.com");


for($i=0; $i<20; $i++)//循环二十次
$user[]=$i;
echo '<pre>';
print_r($user);
echo '</pre>';


c.多个成员之前使用“,”分割
数组中的数组称为二维数组
$info=array(   //个人信息
"user"=>array(
//$user[0]
array(1, "zansan", 10, "nan"),
//$user[1][1]  //第一个数组里的第一个也就是lisi
array(2, "lisi", 20, "nv"),    //$user[1]
//$user[2]
array(3, "wangwu", 30, "nan")
),
"score"=>array(    //分数列表
     array(1, 100, 90, 80),
     array(2, 99, 88, 11),
     array(3, 10, 50, 88)
),
"connect"=>array(     //联系列表
array(1, '110', 'aaa@bbb.com'),
array(2, '120', 'bbb@ccc.com'),
array(3, '119', 'ccc@ddd.com')
)
);


echo $info["connect"][1][2];   //输出ccc@ddd.com


echo '<pre>';
print_r($info);
echo '</pre>';


$user[0][]=1;   //查看它的自动增长规律。如果都不填,那么它会在外层不断增加,内


层全默认为0,如果外层全部加上0,那么内层就会默认为第一层的1、2、3、4.....个数


值例如:
$user[0][]=1;  //0,0
$user[0][]=1;   //0,1
$user[1][]=1;    //1,0
$user[1][]=1;    //1,1
$user[1][]=1;    //1,2
$user[1][]=1;    //1,3


echo '<pre>';
print_r($user);
echo '</pre>';


尽量控制在三维以内。
3. 使用其它的函数声明
file();


































































































































































































































 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值