php兄弟连学习60-90

函数
函数(function)是一段完成指定任务的已命名的代码块。函数可以遵照给他的一组值或参数完成特定的任务,并且可能返回一个值。
php??两种函数:自定义函数+系统函数
一个游戏:走路 打架 加分 逃跑 升级
一个独立体,就封装成函数,过程话开发函数。
函数优势:
控制程序设计复杂度
提高软件的可靠性
提高软件的开发效率
提高软件的可维护性
提高程序的重复性

2.自定义函数
函数是一个结构体,声明一个最简单的函数。
function table(){
echo ‘<table border="1" width="800" align="center">‘;
echo ‘<caption><h1>this is table</h1></caption>‘;
for($i=0;$i<10;$i++){
echo ‘<tr>‘;
for($j=0;$j<10;$j++){
$bg = $j % 2 == 0 ? "#999" : ‘#ff0000‘;
echo ‘<td bgcolor="‘.$bg.‘">‘.($i * 10 + $j+1).‘</td>‘;
}
echo "</tr>";
}
echo ‘</table>‘;
}
table();

3.函数的参数
让用户在调用函数可以改变函数内部的执行行为,达到用户的需求
声明函数时,提供的参数叫行参(形式上的参数)
调用的时候的参数是实参

行参和实参对应
顺序
类型

4.函数返回值
没有返回值就是一个过程,执行完就完了。
自定义函数格式:
function 函数名(参数){
函数体
return 值
}
函数名可以以字母下划线开头后跟零个或多个字母下划线数字和任何字符串。
函数名不区分大小写。命名函数不使用已经声明的函数,或者php内建的函数名。
exit();无返回值
return 返回值。

判断函数是否存在
function_exits();
if(function_exists("table")){
}

5.php的变量范围
函数内部声明的变量,只能在函数内部调用,局部变量。
函数的参数也是一个局部变量,可以调用时给值传值。

6.php全局变量
在函数外部声明的变量都是全局变量,可以在每个函数中使用,(顺序问题)
php声明变量不用修饰符,所以你确定不了是否是新声明的。
用global $name = "xiaowei";

与顺序有关
$name = "xiaoewi";
global $name;
echo $name;

声明在调用之前

常量可以直接使用
超全局数组9个数组$_POST $_GET

7.静态变量
内存分4段
栈内存-空间小 释放比较快
初始化静态段
static $c=30;
1.在函数中声明的静态变量,只在第一次调用时声明
2.第二次以后一看是 就不再声明直接使用
3.静态变量在同一个函数多次调用中共享
一般静态变量都在函数内部定义,为的是保存它的当前值。。。。。

define("NAME", "高老师");

8.引用变量 别名
$a = 10;
$b = &$a;
把a的地址传递给b,改变b就相当于改变了a
只有在内存中的变量才有地址
如果在函数说明中有&出现,说明这个参数是一个引用参数,你调用时传参数时,就必须传一个变量
function demo(&$a){
$a =100;
}
$b = 30;
demo($b);
echo $b; --> 100

函数的参数是引用的参数。。。。。。传递的一定是一个变量名,不能是值
void funName(array &args)
行参用&修饰,在调用该函数时必须传入一个变量给这个参数。

9.默认参数
给行参直接赋值
可选参数
必选参数
demo(string $name,int $age,[string $sex,[string $email]])

10.可变参数
number demo([number ...]) ...表示传递几个都可以
func_num_args
func_num_arg[$i]
count数组个数

弱类型的语言根本

10.php变量函数
function add($a,$b){
return $a + $b;
}
$var = "add";
$var();
变量函数。。。。。
用变量名字+括号

11.回调函数
在使用一个函数的时候如果传递一个变量不能解决多大的问题,就需要传递一个过程进入到函数中,改变函数的执行行为。
在函数的调用时,在参数中传的不是一个变量或一个值,而是一个函数,这就是回调函数。
usort(arr,function($a,$b){return $a-$b;});

strlen($a);

12.回调函数1
变量函数制作回调函数
function demo($num,$n){
for($i=0;$i<$num;$i++){
if($n($i)){
continue;
}
echo $i."<br/>";
}
}
function test($i){
if(preg_match(‘/3/‘, $i)){
return false;
}else{
return true;
}
}
demo(100,"test");

13.回调函数2,借助系统函数call_user_func_array来实现
参数个数是变化时候
function aa($a=3,$b=3,$c=3){
echo $a.$b.$c;
}
call_user_func_array("aa", array(1,2));

14.系统函数
<?php
$dirname = "./phpmyadmin";
//打开目录资源
$dir = opendir($dirname);
readdir($dir)."<br/>";
readdir($dir)."<br/>";
while ($file = readdir($dir)) {
$file = $dirname . "/" . $file;
if(is_dir($file)){
echo $file."<br/>";
}
}
//关闭
closedir($dir);
?>
15.递归函数
1.在函数中调用自己
一定要写一个退出函数的条件

时间: 2024-08-07 08:22:35

php兄弟连学习60-90的相关文章

代码实现:利用条件运算符的嵌套来完成此题:学习成绩&gt;=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

package com.heima.Coding; import java.util.Scanner; /*利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. 程序分析:(a>b)?a:b这是条件运算符的基本例子. */ public class Test05 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Syste

利用条件运算符的嵌套来完成此题: 学习成绩&gt;= 90分的同学用A表示, 60-89分之间的用B表示, 60分以下的用C表示。

题目:利用条件运算符的嵌套来完成此题: 学习成绩>= 90分的同学用A表示, 60-89分之间的用B表示, 60分以下的用C表示. 程序分析:(a> b)?a:b这是条件运算符的基本例子. public class 第五题学生分数分级 { public static void main(String[] args) { System.out.print("请输入一个0-100的分数:"); Scanner in = new Scanner(System.in); int n

利用条件运算符的嵌套来完成此题:学习成绩&gt; =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

package com.hanqi; import java.util.*; public class xuexichengji { public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.println("输入姓名"); Scanner xingming = new Scanner(System.in); String ren = xingming.next(); System.out.println

题目:利用条件运算符的嵌套来完成此题:学习成绩&gt; =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

1 package day11_3; 2 3 import java.util.*; 4 public class lianxi05 { 5 public static void main(String[] args) { 6 int x; 7 char grade; 8 Scanner s = new Scanner(System.in); 9 System.out.print( "请输入一个成绩: "); 10 x = s.nextInt(); 11 grade = x >=

【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩&gt;=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a&gt;b)?a:b这是条件运算符的基本例子。

if-else语句相对比较多,但是容易理解 1 var scroe = window.prompt("请输入1-100之间的数") 2 scroe = parseInt(scrol); 3 if (scroe>=1 && scroe<=100) { 4 if (scroe>=90) { 5 document.write("您的分数是" + scroe + "分 ,为A" ) 6 } else if(scroe&g

[原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

php兄弟连学习1-30

B/S结构软件介绍 嵌入式软件(非电脑程序) 冰箱 洗衣机 手机 软硬件结合 web1.0静态页面web2.0网友互动 人机交换 浏览者也是生产者web3.0移动互联网 网站与网站交互 移动互联 电子商务云计算 云存储物联网 所有一切东西上网 桌子椅子 水表 等等一切都能上网 任何地点都可以监控 web标准 w3c world wide web consortium 1994创建的html css xml xhtml dom等由浏览器进行解析的 脚本语言解释型的 不用编译 url1.协议 htt

【PyTorch深度学习60分钟快速入门 】Part1:PyTorch是什么?

0x00 PyTorch是什么? PyTorch是一个基于Python的科学计算工具包,它主要面向两种场景: 用于替代NumPy,可以使用GPU的计算力 一种深度学习研究平台,可以提供最大的灵活性和速度 0x01 开始学习 1.Tensors Tensors(张量)类似于numpy的ndarrays,不过Tensors还可以运行于GPU上以提升计算速度. from __future__ import print_function import torch 创建一个5x3且未初始化的矩阵: x =

【PyTorch深度学习60分钟快速入门 】Part3:神经网络

神经网络可以通过使用torch.nn包来构建. 既然你已经了解了autograd,而nn依赖于autograd来定义模型并对其求微分.一个nn.Module包含多个网络层,以及一个返回输出的方法forward(input) . 例如,查看下图中的对数字图片分类的网络: 这是一个简单的前馈网络.它接受输入,并将输入依次通过多个层,然后给出输出结果. 对于神经网络来说,一个经典的训练过程包括以下步骤: 定义一个包含一些可学习的参数(或权重)的神经网络 对输入数据集进行迭代 通过网络处理输入 计算损失