PHP

php 是一种后台编程语言 使用php可以开发动态网站和后台接口 (所谓接口就是url地址,用于给前端提供数据) 前后端分离 全栈

php基本语法

  • 变量
  • 字符串拼接
  • 单引号双引号
  • 内容输出
  • 数据类型
  • 运算符
  • 循环语句
  • 函数

变量

在php 中 变量必须以$开头 字母/数字/下划线 不能以数字开头 区分大小写

内容输出

  • echo 输出简单数据类型 如字符串 数值等
  • print_r() 输出复杂数据类型 数组
  • var_dump() 输出详细信息 如数组 对象

区别

// js单引号 双引号的区别      
		// json的作用用来传输数据    XML  <name>zhangsan</name>
		var json = '{"name": "zhangsan", "age": "18", "gender": "male"}';
		//var json = "{'name': 'zhangsan', 'age': '18', 'gender': 'male'}";
		var obj = JSON.parse(json);
		console.dir(obj);

		//js中二维数组的遍历
		var arr = [];
		arr[0] = [1,2,3];
		arr[1] = [4,5,6];

		for(var i = 0; i < arr.length; i++) {
			for(var j = 0; j < arr[i].length; j++) {
				console.log("索引为"+ i + "," + j + '--------' + arr[i][j]);
			}
		}

		//数据类型的判断
		//typeof    instaceof
		console.log(Object.prototype.toString.call([]));
		console.log(Object.prototype.toString.call({}));
		//Uncaught TypeError: Math is not a constructor    Math 不是一个构造方法
		//console.log(Object.prototype.toString.call(new Math()));
		//Math 是一个内置对象  所以不用创建实例  直接使用即可
		//Date 不是一个内置对象   所以创建实例再使用
		var date = new Date()
		console.log(Object.prototype.toString.call(date));
		console.log(date.toString())
	//1.所有的php相关代码都要写在这里面
	//2.echo的作用向页面输出字符串
	echo '<div>HELLO WIRLD</div>';
	//-------------------------------------------
	//3.变量
	/*
		1.必须以$开始
		2.只能包括数字 字母 下划线
		3.区分大小写
		4.不能以数字开头
	*/
	$num = 1;
	echo $num;
	//-------------------------------------------
	//4.字符串拼接  js +   php .
	echo "<div>" . $num . "</div>";
	//5.单引号和双引号的区别
	/*
		1.单引号对于其中的变量当作普通字符串
		2.双引号对于其中的变量解析成变量值
	*/
	echo "<div>$num</div>";
	echo '<div>$num</div>';
	//-------------------------------------------
	// 数组声明的方式
	/*
	1.  $arr = arryay();
	2.	$arr1 = array("1")
	*/

	//count是一个内置函数   用来计算数组的长度
	$arr = array(1, 2, 3);
	$arr1 = array("a"=>"123","b"=>"456","c"=>"789");
	//数组遍历的第一种方式
	for ($i = 0; $i < count($arr); $i ++) {
		echo $arr[$i];
	}

	//数组遍历的第二种方式
	foreach ($arr1 as $value) {
		echo $value;
	}

	//数组第三种遍历方式
	foreach ($arr1 as $key => $value) {
		echo $key.'---------'. $value . '<br/>';
	} 

	//php二维数组
	$arr3 = array();
	$arr3['zhangsan'] = array('age'=>18,'gender'=>'male');
	$arr3['lisi'] = array('age'=>'28','gender'=>'male');
	$arr3['wangwu'] = array('age'=>'38','gender'=>'female');

	//内容输出的三种形式
	/*
		echo  关键字  输出简单数据类型  数值 字符串
		print_r() 方法   输出复杂的数据类型   数组
		var_dump() 方法  输出详细信息   对象 数组
	*/
	print_r($arr3);
	var_dump($arr3);

	//数据类型
	//使用方法  getType()
	$str = 'aaa';
	echo getType($str);
	echo getType($arr);

预定义变量

//不需要声明  直接使用
		//$_GET   $_POST  
		/*
			get:  不安全的  长度受限   速度快
			post: 安全的    长度不受限  可以上传下载文件
		*/

		/*
			http协议的常用的请求方式(增删改查)
			get    用来从服务器获取数据  参数一般作为查询条件
			post   用来添加数据
			put    用来修改数据
			delete 用来删除数据
		*/
		//http://chen.com/day03/php1.php?flag=1
		//$_GET['flag'] 得到了url地址中传递的参数的值
		$para = $_GET['flag'];
		if ($para == 1) {
			echo "得到数据";
		} else {
			echo "参数错误";
		}

函数

//自定义函数
		//1. 函数名不区分大小写
		$num1 =  10;
		$re = fun($num1);
		function Fun($num1) {
			return $num1;
		}
		echo $re;

	//系统函数
		$arr = array(1, 2, 3);
		$arr1 = array("a"=>"123","b"=>"456","c"=>"789");//{"a":"123","b":"456","c":"789"}
		//json对象
		$str = '{"name": "zhangsan", "age":"18"}';
		$json = json_encode($arr1);
		echo $json;

案例

  • 通过后台接口渲染数据
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>成绩</title>
</head>
<body>
	<h1>欢迎</h1>

	<?php 
		//静态网站的可维护非常低
		// 1.复用性高   2.维护性高
		
		//服务器渲染界面
		$arr = array();
		$arr['123'] = array('username' => '张三', 'math' => '140', 'english' => '60', 'chinese' => '80');
		$arr['124'] = array('username' => '王五', 'math' => '40', 'english' => '40', 'chinese' => '100');
		$arr['125'] = array('username' => '赵六', 'math' => '140', 'english' => '120', 'chinese' => '110');

		$code = $_POST['code'];

		if($code == 'admin') {
			foreach ($arr as $value) {
				echo "
			<ul>
				<li>姓名:$value[username]</li>
				<li>数学:$value[math]</li>
				<li>英语:$value[english]</li>
				<li>语文:$value[chinese]</li>
			</ul>


				";
			}
		}else {
			$score = $arr[$code];
			echo "
				<ul>
					<li>姓名:$score[username]</li>
					<li>数学:$score[math]</li>
					<li>英语:$score[english]</li>
					<li>语文:$score[chinese]</li>
				</ul>

			";
		}



	 ?>
</body>
</html>
	//后台接口
	echo 'Weclome!!!!';

	//预定义变量
	//$_GET...

	//前后端分离

	//mime类型
	header('Content-Type:text/html; charset=utf-8');
	echo 
	'<div>
		<span>张三</span>
		<span>18</span>
	</div>'

标题“51单片机通过MPU6050-DMP获取姿态角例程”解析 “51单片机通过MPU6050-DMP获取姿态角例程”是一个基于51系列单片机(一种常见的8位微控制器)的程序示例,用于读取MPU6050传感器的数据,并通过其内置的数字运动处理器(DMP)计算设备的姿态角(如倾斜角度、旋转角度等)。MPU6050是一款集成三轴加速度计和三轴陀螺仪的六自由度传感器,广泛应用于运动控制和姿态检测领域。该例程利用MPU6050的DMP功能,由DMP处理复杂的运动学算法,例如姿态融合,将加速度计和陀螺仪的数据进行整合,从而提供稳定且实时的姿态估计,减轻主控MCU的计算负担。最终,姿态角数据通过LCD1602显示屏以字符形式可视化展示,为用户提供直观的反馈。 从标签“51单片机 6050”可知,该项目主要涉及51单片机和MPU6050传感器这两个关键硬件组件。51单片机基于8051内核,因编程简单、成本低而被广泛应用;MPU6050作为惯性测量单元(IMU),可测量设备的线性和角速度。文件名“51-DMP-NET”可能表示这是一个与51单片机及DMP相关的网络资源或代码库,其中可能包含C语言等适合51单片机的编程语言的源代码、配置文件、用户手册、示例程序,以及可能的调试工具或IDE项目文件。 实现该项目需以下步骤:首先是硬件连接,将51单片机与MPU6050通过I2C接口正确连接,同时将LCD1602连接到51单片机的串行数据线和控制线上;接着是初始化设置,配置51单片机的I/O端口,初始化I2C通信协议,设置MPU6050的工作模式和数据输出速率;然后是DMP配置,启用MPU6050的DMP功能,加载预编译的DMP固件,并设置DMP输出数据的中断;之后是数据读取,通过中断服务程序从DMP接收姿态角数据,数据通常以四元数或欧拉角形式呈现;再接着是数据显示,将姿态角数据转换为可读的度数格
MathorCup高校数学建模挑战赛是一项旨在提升学生数学应用、创新和团队协作能力的年度竞赛。参赛团队需在规定时间内解决实际问题,运用数学建模方法进行分析并提出解决方案。2021年第十一届比赛的D题就是一个典型例子。 MATLAB是解决这类问题的常用工具。它是一款强大的数值计算和编程软件,广泛应用于数学建模、数据分析和科学计算。MATLAB拥有丰富的函数库,涵盖线性代数、统计分析、优化算法、信号处理等多种数学操作,方便参赛者构建模型和实现算法。 在提供的文件列表中,有几个关键文件: d题论文(1).docx:这可能是参赛队伍对D题的解答报告,详细记录了他们对问题的理解、建模过程、求解方法和结果分析。 D_1.m、ratio.m、importfile.m、Untitled.m、changf.m、pailiezuhe.m、huitu.m:这些是MATLAB源代码文件,每个文件可能对应一个特定的计算步骤或功能。例如: D_1.m 可能是主要的建模代码; ratio.m 可能用于计算某种比例或比率; importfile.m 可能用于导入数据; Untitled.m 可能是未命名的脚本,包含临时或测试代码; changf.m 可能涉及函数变换; pailiezuhe.m 可能与矩阵的排列组合相关; huitu.m 可能用于绘制回路图或流程图。 matlab111.mat:这是一个MATLAB数据文件,存储了变量或矩阵等数据,可能用于后续计算或分析。 D-date.mat:这个文件可能包含与D题相关的特定日期数据,或是模拟过程中用到的时间序列数据。 从这些文件可以推测,参赛队伍可能利用MATLAB完成了数据预处理、模型构建、数值模拟和结果可视化等一系列工作。然而,具体的建模细节和解决方案需要查看解压后的文件内容才能深入了解。 在数学建模过程中,团队需深入理解问题本质,选择合适的数学模
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值