`
dcj3sjt126com
  • 浏览: 1885540 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php递归,静态变量,匿名函数使用

    博客分类:
  • PHP
阅读更多

 

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Current To-Do List</title>
</head>
<body>
<?php
    function make_list($parent) {
        global $tasks;
        echo '<ol>';

        foreach($parent as $task_id => $todo) {
            echo "<li>$todo";

            if (isset($tasks[$task_id])) { // 如果当前id有子任务则递归创建菜单
                make_list($tasks[$task_id]);
            }

            echo "</li>";
        }

        echo '</ol>';
    }

    $db = mysqli_connect('192.168.31.172' ,'root', 'root', 'phpadvanced');
    mysqli_query($db, "set names utf8");
    $q = 'SELECT task_id, parent_id, task FROM tasks WHERE date_completed="0000-00-00 00:00:00" ORDER BY parent_id, date_added ASC';
    $r = mysqli_query($db, $q);

    $tasks = array();
while (list($task_id, $parent_id, $task) = mysqli_fetch_array($r, MYSQLI_NUM)) {
    $tasks[$parent_id][$task_id] = $task;
}
//echo '<pre>'.print_r($tasks,1).'</pre>';
make_list($tasks[0]); //把包含顶级任务的数组发送给它, 最顶级的parent_id是0
?>
</body>
</html>

 

 

<?php
// create the array.
// Array structs
// StudentId = > ["name" => "Name", "grade" => xx.x];

$students = [
    256 => ['name' => 'Jon', 'grade' => '98.5'],
    2 => ['name' => 'Vance', 'grade' => '85.1'],
    9 => ['name' => 'Stephen', 'grade' => '94.0'],
    364 => ['name' => 'Steve', 'grade' => '85.1'],
    68 => ['name' => 'Rob', 'grade' => '74.6'],
];

function name_sort($x, $y) {
    static $count = 1;
    echo "<p>Iteration $count: {$x['name']} vs. {$y['name']} </p>\n";
    $count ++;
    return strcasecmp($x['name'], $y['name']);
}

function grade_sort($x, $y) {
    static $count = 1;
    echo "<p>Iteration $count: {$x['grade']} vs. {$y['grade']}</p>\n";
    $count++;
    return $x['grade'] < $y['grade'];
}

echo print_r($students, 1);
uasort($students, 'name_sort'); //保持键并使用自定义排序
echo print_r($students, 1);
uasort($students, 'grade_sort');
echo print_r($students, 1);
?>

  

<?php

// create the array.
// Array structs
// StudentId = > ["name" => "Name", "grade" => xx.x];

$students = [
    256 => ['name' => 'Jon', 'grade' => '98.5'],
    2 => ['name' => 'Vance', 'grade' => '85.1'],
    9 => ['name' => 'Stephen', 'grade' => '94.0'],
    364 => ['name' => 'Steve', 'grade' => '85.1'],
    68 => ['name' => 'Rob', 'grade' => '74.6'],
];

echo print_r($students, 1);
uasort($students, function($x, $y){
    return strcasecmp($x['name'], $y['name']);
}); //保持键并使用自定义排序
echo print_r($students, 1);
uasort($students, function($x, $y){
    return $x['grade'] < $y['grade'];
});
echo print_r($students, 1);
?>

 

<?php
function increment(&$i) {
    $i++;
}
$num = 2;
increment($num);
echo $num;

?>

 

 

分享到:
评论

相关推荐

    PHP 常用函数 网上各类函数

    匿名函数(也叫闭包)是一种没有名字的函数,可以作为参数传递,或者存储在变量中。 7. **错误处理与异常** PHP提供错误报告机制,如`error_reporting()`,以及异常处理机制,通过`try-catch`结构捕获和处理运行时...

    JAVA函数使用手册

    7. **变量作用域**:函数内的局部变量只能在该函数内部使用,而成员变量(包括静态变量)在整个类的范围内都有效。 8. **匿名函数**:Java 8引入了Lambda表达式,允许创建没有名字的函数,常用于实现接口的单个抽象...

    java函数使用查询包

    5. **匿名函数(Lambda表达式)**:Java 8引入了Lambda表达式,使得函数可以像对象一样被传递。这对于编写简洁的回调函数和处理集合非常方便。 6. **方法引用(Method References)**:与Lambda表达式关联,Java 8...

    c 语言函数表(函数用法)

    但可以通过闭包和匿名函数的概念在其他语言(如C++或C#)中实现类似功能。 11. **函数指针**: - 函数指针可以存储函数的地址,使我们能够将函数作为参数传递给其他函数,或者将函数作为其他函数的返回值。 12. *...

    c语言函数题

    在函数内部定义的静态变量只在第一次调用时初始化,并保持其值,直到程序结束。 14. 函数原型: 函数原型是函数声明的一种形式,用于指定函数的输入和输出类型。在函数定义之前提供函数原型可以避免编译错误。 ...

    Java计算机语言函数应用

    - Java 8引入了匿名函数和Lambda表达式,简化了对函数式接口的实现,增强了代码的简洁性。 9. **异常处理与抛出** - Java函数可以抛出异常,这需要在函数声明中使用`throws`关键字列出可能抛出的异常。 - 异常...

    java函数

    这里,`(a, b) -&gt; a - b`是一个匿名函数,用于比较两个整数。 10. **函数式接口**: Lambda表达式必须与函数式接口关联,这种接口只有一个抽象方法。例如,`Runnable`和`Comparator`接口都是函数式接口。 11. **...

    C函数集合

    9. **静态变量与动态变量**:静态修饰符可以使变量在函数调用间保持状态,而动态分配(`malloc`和`calloc`)则用于在运行时创建和释放内存。 10. **函数重载**:虽然C语言不支持像C++那样的函数重载,但可以通过...

    php基础入门

    和同学们一起学习回忆以前的知识,第一次上课,大家别笑啊 入门指引 1、php简介 ...局部静态变量 递归函数 迭代 ..............................................................................

    C# 的函数编程详解

    - **匿名函数**:C#的Lambda表达式如`x =&gt; x * x`,是一种可以没有名字的函数,常用于简化代码并作为参数传递。 - **元组Tuples**:元组允许你创建多个值的集合,而不必创建一个新的类。在C#7及以上版本,元组语法...

    spark 代码示例

    匿名函数是 Scala 中的一种函数定义方式,允许在函数体中定义匿名函数。匿名函数可以提高代码的灵活性和可读性。 8. 柯里化 柯里化是 Scala 中的一种函数调用方式,允许将多个参数分离成多个函数调用。柯里化可以...

    c c++函数手册.rar

    4. 嵌套函数与匿名函数(Lambda表达式):C++11引入的特性,嵌套函数可以在其外部函数的范围内访问变量,Lambda表达式则提供了简洁的匿名函数定义方式。 三、C++标准库函数 1. 输入/输出流:iostream库提供了cin、...

    java 函数速查CHM

    7. **匿名函数**:Java 8引入了Lambda表达式,允许创建没有名字的函数,常用于函数式接口。 8. **递归**:函数调用自身的技术,常用于解决需要反复拆分问题的场景,如斐波那契数列。 9. **异常处理**:函数内部...

    php代码-PHP函数的嵌套

    - **静态变量**:在函数内部,如果希望变量在函数多次调用之间保持其值,可以使用`static`关键字声明。 4. **Closures(匿名函数)和Closure::bindTo** PHP5.3引入了匿名函数(也称为闭包),它可以作为嵌套函数...

    函数式编程思想

    在Java 8中,引入了Lambda表达式,使得编写匿名函数变得更加简洁。例如: ```java Function, Integer&gt; lengthFinder = s -&gt; s.length(); ``` **纯函数** 纯函数是不依赖外部状态且无副作用的函数,它们的输出仅取...

    C8函数示例代码.zip

    7. **匿名函数(lambda表达式)**:虽然C++支持,但C语言不支持匿名函数。在C++11及以后版本中,lambda表达式提供了一种简洁的创建局部函数的方式。 8. **重载函数**:C++允许在同一作用域内有多个同名但参数列表...

    PHP编程语言-内含源码以及设计说明书(可以自己运行复现).zip

    文件可能涵盖了函数的定义、参数传递、返回值、匿名函数(闭包)以及递归函数的使用。 ### 实践环节 这个压缩包特别之处在于包含了源码和设计说明书,这使得学习者可以实际运行示例代码,观察结果,从而加深理解。...

    c++函数查询

    自C++11起,引入了lambda表达式,这是一种创建匿名函数的方式。它们常用于函数对象和回调函数: ```cpp auto square = [](int x) { return x * x; }; ``` 8. **函数指针(Function Pointers)** 函数指针可以...

    php面试题题库

    - 高级函数:递归、回调函数、匿名函数、闭包的使用。 3. 类与对象: - OOP概念:封装、继承、多态。 - 类的定义:构造函数、析构函数、访问修饰符(public、private、protected)。 - 对象操作:实例化、属性...

    李兴华老师的面向对象03

    1. **静态变量与静态方法**:`static`关键字在Java中主要用于定义静态成员变量(静态变量)和静态方法。当一个成员变量或方法被声明为`static`时,它就不再是某个对象的属性或行为,而是属于该类本身的特性。 - **...

Global site tag (gtag.js) - Google Analytics