第五十三天休息 对象,目录读取,递归

封装:自制私有对象及函数控制

class jundui
{
    private $jm;
    private $rs;
    private $wq;
    private $nl;
    private $gx;
    function __set($i,$j)
    {
        if($i=="jm")
            $this->jm=$j;
        else if($i=="wq")
            $this->wq=$j;
        else if($i=="rs")
        {
            if(is_int($j))
                $this->rs=$j;
            else
                $this->rs=false;
        }
        else if($i=="nl")
        {
            if(is_int($j)&&$j>18&&$j<55)
                $this->nl=$j;
            else
                $this->nl=false;
        }
        else if($i=="gx")
        {
            if($j=="敌"||$j=="友")
                 $this->gx=$j;
            else
                 $this->gx=false;
        }
    }
}
$a=new jundui;
$a->jm="中国工农红军";
$a->rs=1000000;
$a->wq="机枪,坦克,飞机,导弹,原子弹";
$a->nl=132;
$a->gx="友";
var_dump($a);

简单的递归函数以及调用(递归函数有进有出,反复执行)

//在函数中自己调用自己就称为递归
function test($i)
{
    echo $i.‘<br>‘;
    if($i>0)
        test($i-1);
    else
        echo"__________<br>";
    echo $i.‘<br>‘;
}
test(10);

利用递归遍历目录的函数以及调用方式

function fordir($name)    //定义函数名
{
    $i=opendir($name);      //打开目录
    readdir($i);            //获取第一个目录.
    readdir($i);            //获取第二个目录..
    while($j = readdir($i))        //从第三个文件开始循环,当完全获取目录后返回flase,循环节俗
    {
        $j=$name."/".$j;           //获取目录下的目录
        if(is_dir($j))             //判断文件是否为目录文件
        {            echo "目录{$j}<br>";    //输出文件名            fordir($j);            //反复调用函数已达到到读取目录下所有子目录下所有子目录的子目录......        }
        else
            echo "文件{$j}<br>";    //输出文件名
    }
    closedir($i);
}
$name="./mulu";    //获取目录路径,引号内目录的名称前要要加“/.”
fordir($name)      //调用函数

调用其他文本的函数(include,require)

include "function.文件名";  //文件名为函数所在的文件路径,可以是其它格式,一般用于根据条件调用且对程序影响不大时,代码错误时出现警告
include_once "function.文件名";  //当调用多次时,默认只调用一次
require"function,文件名";  //用于对程序影响很大时候,调用失败程序就无法执行时,调用代码有错时出现致命错误
require_once"function.文件名";   //当调用多次时,默认只调用一次

匿名函数($name属于内置类closure的一个对象)

$name=function($i,$j)
{
    echo "这是一个匿名函数";
    return $i*$j;
};                         //函数后要加分号
echo $name(2,3);                       //这样调用和下方的效果一样echo $name(2,function(){return 3;})    //匿名函数可以作为函数的参数

寻找全局变量$a第一次出现的值

 global $a; 

闭包函数(不稳定)

function father()    //声明父函数
{
    $a=1;
    $b=2;
    $son=function($i) use(&$a,&$b)
    //声明一个匿名函数为子函数,子函数不能有返回值
    //子函数调用父函数的变量时,加取地址符才能让变量在父函数全局变化,不加的话只是赋值,不改变父函数的函数全局变量
    {
        echo $i.‘<br>‘;
        $a++;
        $b++;
        echo $a*$b.‘<br>‘;
    };
    return $son;         //将子函数作为返回值
}
$father=father();        //调用时,函数内部变量不会被释放
$father("调用第一次");    //由于变量不释放,每调用一次,父函数的变量$a,$b一直在变化
$father("调用第二次");
$father("调用第三次");   
时间: 2024-10-17 13:03:56

第五十三天休息 对象,目录读取,递归的相关文章

攻城狮在路上(叁)Linux(十三)--- 文件与目录的管理

一.查看文件与目录: 1.命令格式:ls [-aAdfFhilnrRSt] 目录名称; 2.参数说明: -a:显示所有的文件,包括隐藏文件(隐藏文件一般以.开头). -d:仅列出目录本身. -l:列出长数据串,包含文件的属性与权限等数据. 二.复制命令:cp 1.命令格式:cp [-adfilprsu] 源文件 目标文件 2.参数说明: -i:若目标文件已经存在时,覆盖之前先询问. -r:递归持续复制,用于目录的复制. -p:连同文件的属性一起复制过去,而非使用默认属性,一般在备份的时候用. -

QT开发(五十三)———QML基本元素

QT开发(五十三)---QML基本元素 一.基本可视化项 可视元素具有几何坐标,会在屏幕上占据一块显示区域. Item             基本的项元素,所有可视化项都继承Item Rectangle        基本的可视化矩形元素 Gradient         定义一个两种颜色的渐变过程 GradientStop     定义个颜色,被Gradient使用 Image         在场景中使用位图 BorderImage     (特殊的项) 定义一张图片并当做边界 Anima

走入计算机的第五天(关注于目录的操作)

---恢复内容开始--- 1  一些简单的命令 cat:查看文件的所有内容. head:查看文件头几行的内容,默认前十行.后面加上(-数字)就是看那个数字对应的前几行. tail:查看文件后几行的内容,默认后十行.后面加上(-数字)就是看那个数字对应的后几行.后面加上-f(文件夹),会检测有没有新加的内容. more:以百分比的方式查看. less:通过上下键的方式翻页查看. mv:剪切的作用,用法和cp用法差不多(mv /要剪切文件名的上级目录/要剪切的文件 /要剪切到的位置/),不同的是剪切

VC项目程序运行时设置指定目录读取Dll

方法一: 选择当前工程,右击"Properties" -> "Configuration Properties" -> "Debugging",在"Working Directory"设置dll的路径就可以了 方法二:设置项目的环境变量 方法三: CString strDllPath = GetExePath() + _T("System"); SetDllDirectory(strDllPat

C#与数据库访问技术总结(五)之Command对象的常用方法

Command对象的常用方法 说明:上篇总结了Command对象的几个数据成员,这节总结Command对象的常用方法. 同样,在不同的数据提供者的内部,Command对象的名称是不同的,在SQL Server Data Provider里叫SqlCommand,而在OLE DB Data Provider里叫OleDbCommand. 下面将详细介绍Command类型对象的常用方法,包括构造函数.执行不带返回结果集的SQL语句方法.执行带返回结果集的SQL语句方法和使用查询结果填充DataRea

从零开始学习jQuery (五) 事件与事件对象

原文:从零开始学习jQuery (五) 事件与事件对象 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来! 从零开始学习jQuer

AJAX入门---五步使用XMLHttpRequest对象

XMLHttpRequest简介: XMLHttpRequest对象可以在不向服务器提交整个页面的情况下,实现局部更新网页.当页面全部加载完毕后,客户端通过该对象向服务器请求数据,服务器端接受数据并处理后,向客户端反馈数据.XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力.XMLHttpRequest 可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个 DOM 文档形式返回内容.尽管名为 XM

Effective C++读书笔记之十三:以对象管理资源

Item 13:Use objects to manage resources 假设我们使用一个用来塑膜投资行为的程序库,其中各式各样的投资类型继承自一个root class: class Investment { ... };  //"投资类型"继承体系中的root class 进一步假设,这个程序系通过一个工厂函数(工厂函数会"返回一个base class指针,指向新生成的derived class 对象),供应我们某特定的Investment对象: Investment

Linux系统编程_1_目录读取实现简单ls命令

闲来无事,随便写写,实现简单的ls命令: | 1 #include <stdio.h> | 2 #include <stdlib.h> | 3 #include <dirent.h> | 4 #include <string.h> | 5 | 6 int main(int argc, char **argv) | 7 { | 8 DIR *pDir; | 9 struct dirent *stDir; | 10 int flag = 0; | 11 | 12