PHP初级教程------------------(3)

目录

文件包含

文件包含的作用

文件包含四种形式

文件加载原理

Include和require区别

文件加载路径

文件嵌套包含

函数

函数的基本概念

函数定义语法

函数命名规范

参数详解

形参

实参

默认值

引用传递

函数体

函数返回值

​作用域

静态变量

         可变函数

         匿名函数

闭包

伪类型


文件包含

文件包含:在一个PHP脚本中,去将另外一个文件(PHP)包含进来,去合作完成一件事情。

文件包含的作用

文件包含的意义:

1、  要么使用被包含文件中的内容,实现代码的共享(重用):向上包含(索要)

向上包含:在当前脚本要用某个代码之前包含别的文件

2、  要么自己有东西可以给别的文件使用,实现代码的共享(重用):向下包含(给予)

向下包含:在自己有某个东西的时候,需要别的脚本来显示(自己代码写完之后包含其他文件)

最大的作用:分工协作,每个脚本做的事情不一样,因此可以使用协作方式,让多个脚本共同完成一件事情。

文件包含四种形式

在PHP中文件的包含有四种形式(两种大形式)

Include:包含文件

Include_once:系统会自动判断文件包含过程中,是否已经包含过(一个文件最多被包含一次)

Require:与include相同

Require_once:以include_once相同

包含基本语法

Include ‘文件名字’;

Include(‘文件名字’);       //文件名字:路径问题

以上方式:是先包含文件,后使用文件中的内容(向上包含)

向下包含:先准备内容,然后包含另外的文件,在另外的文件中,使用当前的内容

<?php

	//被包含文件


	//定义数据
	$a = 1;
	define('PI',3.14);
<?php

	//包含文件:使用数据


	//包含文件
	include '20include1.php';	//包含当前文件include2.php所在文件夹下的include1.php

	echo $a,PI;


	//再次加载
	//include 'include1.php';

	//include_once
	//include_once 'include1.php';

<?php

	//定义数据

	$a = 10;
	const PI = 3.14;


	//包含文件:为了显示以上数据
	include_once '23include4.php';
<table>
	<tr>
		<td><?php echo $a;?></td>
		<td><?php echo PI;?></td>
	</tr>
</table>

文件加载原理

PHP代码的执行流程

1、  读取代码文件(PHP程序)

2、  编译:将PHP代码转换成字节码(生成opcode)

3、zendengine来解析opcode,按照字节码去进行逻辑运算

4、  转换成对应的HTML代码

文件加载原理:

1、  在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中

2、  加载位置:在哪加载,对应的文件中的代码嵌入的位置就是对应的include位置

3、  在PHP中被包含的文件是单独进行编译的

PHP文件在编译的过程中如果出现了语法错误,那么会失败(不会执行);

 

但是如果被包含文件有错误的时候,系统会在执行到包含include这条语句的时候才会报错。 

Include和require区别

Include和include_once的区别:

Include系统会碰到一次,执行一次;如果对统一个文件进行多次加载,那么系统会执行多次;

Include_once:系统碰到多次,也只会执行一次。

Require和include的区别:本质都是包含文件,唯一的区别在于包含不到文件的时候,报错的形式不一样

Include的错误级别比较轻:不会阻止代码执行

(a.php不存在这个文件,所以会报错)

Require要求较高:如果包含出错代码不再执行(require后面的代码)

 

 附上代码:

<?php

	//require和include的区别


	//include包含文件
	//include 'a.php';

	//require包含文件
	require 'a.php';


	echo 'hello world';

文件加载路径

文件在加载的时候需要指定文件路径才能保证PHP正确的找到对应的文件。

文件的加载路径包含两大类:

1、  绝对路径

从磁盘的根目录开始(本地绝对路径)

Windows:盘符C:/路径/PHP文件

Linux:/路径/PHP文件

从网站根目录开始(网络绝对路径)

/:相对于网站主机名字对应的路径

Localhost/index.php -> E:/server/apache/htdocs/index.php

2、相对路径:从当前文件所在目录开始的路径

         .或者./:表示当前文件夹

         ../:上级目录(当前文件夹的上一层文件夹)

绝对路径和相对路径的加载区别

1、  绝对路径相对效率偏低,但是相对安全(路径不会出问题)

2、  相对路径相对效率高些,但是容易出错(相对路径会发生改变)

附上代码:

<?php

	//PHP文件加载路径

	//相对路径加载
	//include_once 'include1.php';	//默认当前文件本身

	//include_once './include1.php';	

	//复杂相对路径
	//include_once '../htdocs/include1.php';



	//绝对路径
	include_once 'E:/server/apache/htdocs/include1.php';

	echo $a;

文件嵌套包含

文件嵌套包含:一个文件包含另外一个文件,同时被包含的文件又包含了另外一个文件。

嵌套包含的时候就很容易出现相对路径出错的问题:相对路径会因为文件的包含而改变(./../):windows下面,每一个文件夹下都有...的文件夹。

张三 左边是 李四,李四左边是王五

张三把李四叫到自己的位置:李四与王五之间有两个位置,李四如果还按照左边伸手找王五就找不到

附上代码:

<?php

	//定义数据

	$a = 10;
	const PI = 3.14;


	//包含文件:为了显示以上数据
	include_once '23include4.php';
<table>
	<tr>
		<td><?php echo $a;?></td>
		<td><?php echo PI;?></td>
	</tr>
</table>
<?php

	//文件嵌套包含


	//包含include3.php//文件本身包含了include4.php
	include '22include3.php';

函数

函数的基本概念

函数:function,是一种语法结构,将实现某一个功能的代码块(多行代码)封装到一个结构中,从而实现代码的重复利用(复用)。

函数定义语法

函数有几个对应的关键点:function关键字、函数名、参数(形参和实参)、函数体和返回值

基本语法如下:

Function 函数名([参数]){

         //函数体

         //返回值:return 结果;

}

定义函数的目的:是为了实现代码的重复利用,一个功能一个函数(简单明了)

函数的使用:通过访问函数的名字+();   //如果函数在定义的过程中有参数,那么在调用的时候就必须传入对应的参数:函数是一种结构不会自动运行,必须通过调用才会执行

函数是在代码执行阶段,碰到函数名字的时候才会调用,不是在编译阶段。

函数的调用特点:只要系统在内存中能够找到对应的函数,就可以执行(函数的调用可以在函数定义之前)

函数执行的内存分析:

1、  读取代码进入到代码段(编译:将代码变成字节码存储到内存)

2、  根据代码逐行执行

以上原因:编译和执行是分开的(先编译后执行)

附上代码:

<?php

	//函数


	//调用函数
	display();


	//定义函数
	function display(){
		//函数体
		echo 'hello world';		//没有返回值
	}


	//调用函数
	//display();

调用在函数定义前,还是后都行

函数命名规范

命名规范:由字母、数字和下划线组成,但是不能以数字开头

函数作为一种常用的结构,一般遵循以下规则:函数通常名字代表着函数的功能,而有些功能会比较复杂,可能一个单词不足以表达,需要多个组合。

1、  驼峰法:除了左边第一个单词外,后面所有的单词首字母都大写:showParentInfo()

2、  下划线法:单词之间通过下划线连接,单词都是小写:show_parent_info()

函数名字:在一个脚本周期中,不允许出现同名函数(通常在一个系统开发中都不会使用同名函数)

参数详解

函数的参数分为两种:形参和实参

形参

形参:形式参数,不具有实际意义的参数,是在函数定义时使用的参数

实参

实参:实际参数,具有实际数据意义的参数,是在函数调用时使用的参数

形参是实参的载体:实参在调用时通常是需要传入到函数内部参与计算(运算),那么需要在函数内部去找到实际数据所在的位置才能找到数据本身:需要实际调用的时候,将数据以实参的形式传递给形参:给形参赋值,从而使得函数内部可以用到外部数据。

注意:

1、  在PHP中允许实参多余形参(个数):函数内部不用而已

2、  在PHP中理论上形参个数没有限制(实际开发不会太多)

3、  实参不能少于形参个数

 

默认值

默认值:default value,指的是形参的默认值,在函数定义的时候,就给形参进行一个初始赋值:如果实际调用传入的参数(实参)没有提供,那么形参就会使用定义时的值来进入函数内部参与运算。

通常默认值是用在一些,一定会有某个数据参与,但是可能通常是某个我们知道的值。

 

注意事项:

1、  默认值的定义是放在最右边的(多个),不能左边形参有默认值,但是右边没有

函数外部定义的变量名字与函数定义的形参名字冲突(同名)是没有任何关联关系的;如果多个函数使用同样的形参名字也不冲突。

引用传递

实参在调用时会将值赋值给形参,那么实际上使用的方式就是一种简单的值传递:将实参(如果是变量或者常量或者其他表达式)的结果(值)取出来赋值给形参:形参与外部实际传入的参数本身没有任何关联关系:只是结果一样。

有的时候,希望在函数内部拿到的外部数据,能够在函数内部改变,那么就需要明确告知函数(定义时),函数才会在调用的时候去主动获取外部数据的内存地址。以上这种定义形式参数的方式叫作引用传值。

基本定义语法:

Function 函数名(形参1,&形参2){

         //函数体

}

在调用的时候,必须给引用传值的参数位置传入实际参数,而且参数本身必须是变量。(变量才有指向的数据的内存地址)

引用传值注意事项:在传入实参的时候,必须传入变量

附上代码:

<?php

	//函数参数


	//定义函数
	function add($arg1,$arg2){		//形参可以有多个,使用逗号分隔即可
		//函数体:可以直接使用形参运算
		echo $arg1 + $arg2;
	}

	//调用函数
	$num1 = 10;

	//add($num1,20);					//传入的实参,可以是变量或者其他有值的表达式(变量、常量、运算符计算结果)


	//函数的默认值
	function jian($num1 = 0,$num2 = 0){		//当前的$num1是形参,在编译时不执行,即便执行也是在jian函数内部,不会与外部的$num1变量冲突
		echo $num1 - $num2;
	}

	//调用:默认值如果存在,可以不用传入
	//jian($num1);
	//echo $num1;


	//引用传值
	function display($a,&$b){
		//修改形参的值
		$a = $a * $a;
		$b = $b * $b;

		echo $a,'<br>',$b,'<br/>';
	}

	//定义变量
	$a = 10;
	$b = 5;

	//调用函数
	//display($a,$b);

	//echo '<hr/>',$a,'<br/>',$b;

	//错误调用:引用传值直接传入数据本身而不是变量
	display(10,5);

函数体

函数体:函数内部(大括号{}里面)的所有代码都称之为函数体

函数体:基本上所有的代码都可以实现

1、  定义变量

2、  定义常量

3、  使用流程控制(分支、循环)

4、  可以调用函数

函数返回值

返回值:return,指的是将函数实现的结果,通过return关键字,返回给函数外部(函数调用处):在PHP中所有的函数都有返回值。(如果没有明确return使用,那么系统默认返回NULL)

返回值作用:将计算结果返回给调用处

注意:函数的返回值可以是任意数据类型

Return关键字:

1、  return在函数内部存在的价值:返回当前函数的结果(当前函数运行结束)

2、  return还可以在文件中直接使用(不在函数里面):代表文件将结果return后面跟的内容,转交给包含当前文件的位置。(通常在系统配置文件中使用较多),在文件中也代表中终止文件后面的代码:return之后的内容不会执行。

 附上代码:

<?php

	//包含有return关键字的文件


	$res = include_once 'function3.php';
	var_dump($res);
<?php

	//函数返回值

	//定义函数
	function display(){
		//输出
		echo __FUNCTION__;	//输出当前函数名字
	}

	var_dump(display());

	//加法运算
	function add($num1,$num2){
		return $num1 + $num2;		//返回结果

		//输出
		echo $num1;
	}

	$res = add(10,20);				//外部定义变量接收函数运行结果

	echo $res;

	//将结果提交给另外包含的文件
	return 'hello world';

	echo $res;						//不再执行:上面return结束了

 作用域

作用域:变量(常量)能够被访问的区域

1、  变量可以在普通代码中定义

2、  变量也可以在函数内部定义

在PHP中作用域严格来说分为两种:但是PHP内部还定义一些在严格意义之外的一种,所以总共算三种:

1、  全局变量:就是用户普通定义的变量(函数外部定义)

         所属全局空间:在PHP中只允许在全局空间使用:理论上函数内部不可方法

         脚本周期:直到脚本运行结束(最后一行代码执行完)

2、  局部变量:就是在函数内部定义的变量

         所属当前函数空间:在PHP中只允许在当前函数自己内部使用

         函数周期:函数执行结束(函数是在栈区中开辟独立内存空间运行)

3、  超全局变量:系统定义的变量(预定义变量:$_SERVER、$_POST等)

         所属超全局空间:没有访问限制(函数内外都可以访问)

超全局变量会将全局变量自动纳入到$GLOBALS里面,而$GLOBALS没有作用域限制,所以能够帮助局部去访问全局变量:但是必须使用数组方式

如果想函数内部使用外部变量:除了$GLOBALS之外,通过参数传值(如果要统一战线还可以使用引用传值)。

在PHP中,其实还有一种方式,能够实现全局访问局部,同时局部也可以访问全局:global关键字

Global关键字:是一种在函数里面定义变量的一种方式

1、  如果使用global定义的变量名在外部存在(全局变量),那么系统在函数内部定义的变量直接指向外部全局变量所指向的内存空间(同一个变量);

2、  如果使用global定义的变量名在外部不存在(全局变量),系统会自动在全局空间(外部)定义一个与局部变量同名的全局变量

本质的形式:在函数的内部和外部,对一个同名变量(全局和局部)使用同一块内存地址保存数据,从而实现共同拥有。

基本语法:

Global 变量名;       //不能赋值

变量名 = 值;          //修改

虽然以上方式可以实现局部与全局的互访,但是通常不会这么用。一般如果会存在特殊使用,也会使用参数的形式来访问。(还可以使用常量:define定义的)

<?php

	//PHP中作用域

	//默认的代码空间:全局空间
	$global = 'global area';				//最终会被系统纳入到超全局变量中:$GLOBALS['global'] = global area;

	//局部变量(函数内部定义)
	function display(){
		//所有的形参都可以理解为局部变量
		$inner = __FUNCTION__;				//局部变量

		//访问全局变量
		//echo $global;						//不能访问

		//访问全局变量
		//var_dump($GLOBALS);
		//echo $GLOBALS['global'];


		//定义变量:使用全局变量
		global $global;						//全局空间存在
		echo $global;

		//定义变量:全局不存在
		global $local;
		$local = 'inner';
	}

	//调用函数
	display();

	//全局空间访问局部变量
	//echo $inner;							//不能访问

	//访问“局部”变量
	echo $local;

静态变量

静态变量:static,是在函数内部定义的变量,使用static关键字修饰,用来实现跨函数共享数据的变量:函数运行结束所有局部变量都会清空,如果重新运行一下函数,所有的局部变量又会重新初始化。

基本语法:

Function 函数名(){

         //定义变量

         Static $变量名 = 值;              //通常会在定义的时候就直接赋值

}

静态变量的作用是为了跨函数共享数据(同一个函数被多次调用)

静态变量的使用:

1、  为了统计:当前函数被调用的次数(有没有替代方法?)

2、  为了统筹函数多次调用得到的不同结果(递归思想)

<?php

	//静态变量

	//定义函数
	function display(){
		//定义变量
		$local = 1;						//局部变量

		//定义静态变量
		static $count = 1;				//静态变量

		echo $local++,$count++,'<br/>';
	}

	//调用
	display();
	display();
	display();

可变函数

可变函数:当前有一个变量所保存到值,刚好是一个函数的名字,那么就可以使用变量+()来充当函数名使用。

$变量 = ‘display’;

Function display(){

}

//可变函数

$变量();

 __LINE__ 中文意思即行号,这里的意思主要是指:当前这行代码对应行数。注意返回值是一个整数类型;

可变函数在系统使用的过程中还是比较多的,尤其是使用很多系统函数的时候:需要用户在外部定义一个自定义函数,但是是需要传入到系统函数内部使用。

<?php

	//PHP可变函数

	//定义函数
	function display(){
		echo __LINE__, __FUNCTION__;
	}

	//定义变量
	$func = 'display';

	//可变函数
	//$func();

	//定义系统函数(假设)
	function sys_function($arg1,$arg2){
		//给指定的函数(第一个参数),求对应的第二个参数值的4次方
		//为实际用户输入的数值进行处理
		$arg2 = $arg2 + 10;

		return $arg1($arg2);	//user_function(20)
	}

	//定义一个用户函数:求一个数的四次方
	function user_function($num){
		return $num * $num * $num * $num;
	}

	//求10的4次方
	echo sys_function('user_function',10);


匿名函数

基本概念

匿名函数:没有名字的函数

基本语法:

变量名 = Function(){

         函数体

};

变量保存匿名函数,本质得到的是一个对象(Closure)

闭包

闭包:closure, 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)

简单理解:函数内部有一些局部变量(要执行的代码块)在函数执行之后没有被释放是因为在函数内部还有对应的函数在引用(函数的内部函数:匿名函数)

证明:函数的局部变量在函数使用完之后没有被释放?

1、 使用内部 匿名函数;

2、 匿名函数使用句变量:use;

3、 匿名函数被返回给外部使用;

<?php

	//匿名函数

	//定义基本匿名函数
	$func = function(){
		//函数体
		echo 'hello world';
	};

	//调用匿名函数:可变函数
	//$func();

	//查看变量内容
	//var_dump($func);

	//闭包函数
	function display(){
		//定义变量:局部变量
		$name = __FUNCTION__;

		//定义匿名函数
		$innerfunction = function() use($name){		//use就是将外部变量(局部)保留给内部使用(闭包)
			//函数内部的函数
			//echo $name;
		};

		//调用函数
		$innerfunction();
	}

	display();

	//闭包函数
	function display1(){
		//定义变量:局部变量
		$name = __FUNCTION__;

		//定义匿名函数
		$innerfunction = function() use($name){		//use就是将外部变量(局部)保留给内部使用(闭包)
			//函数内部的函数
			echo $name;
		};

		//返回内部匿名函数
		return $innerfunction;
	}

	$closure = display1();	

	//到51行位置:display1函数运行结束:理论上局部变量$name应该已经被释放
	$closure();

伪类型

伪类型:假类型,实际上在PHP中不存在的类型。但是通过伪类型可以帮助程序员去更好的查看操作手册从而更方便学习。

伪类型主要有两种:在三大类八小类之外

Mixed:混合的,可以是多种PHP中的数据类型

Number:数值的,可以是任意数值类型(整形和浮点型)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/4957.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

作为一个数学专业的学生,我是怎么看待编程的?

1.概况 博主的专业是数学与应用数学&#xff0c;简称应数。虽然后面跟了个应用数学&#xff0c;但是这个专业应该是本科阶段最接近数学的专业了。我认为这个专业使我具有如下的几个优势&#xff1a; 数学的学习使我具有较强的思维能力。编程本质上就是通过写代码的方式来解决…

大数据Flink进阶(八):Apache Flink架构介绍

Apache Flink架构介绍 一、Flink组件栈 在Flink的整个软件架构体系中,同样遵循这分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建Flink应用提供了丰富且友好的接口。

山东大学机器学习大作业

数据处理与可视化这里是DLRM模型数据集预处理模块&#xff1a;args.ln_emb ln_emb.tolist() m_spa args.arch_sparse_feature_sizeln_emb np.asarray(ln_emb)num_fea ln_emb.size 1 # num sparse num dense featuresm_den_out ln_bot[ln_bot.size - 1]Sparse fea 26, D…

Java设计模式-3、单例模式

单例模式 单例模式属于创建型模式&#xff0c;⼀个单例类在任何情况下都只存在⼀个实例&#xff0c; 构造⽅法必须是私有的、由⾃⼰创建⼀个静态变量存储实例&#xff0c;对外提供⼀ 个静态公有⽅法获取实例。 优点是内存中只有⼀个实例&#xff0c;减少了开销&#xff0c;尤…

代码随想录|day26|回溯算法part03● 39. 组合总和● 40.组合总和II● 131.分割回文串

今天的练习基本就是回溯法组合问题&#xff0c;这一节只要看labuladong即可。 组合问题&#xff1a; 39. 组合总和---------------------形式三&#xff0c;元素无重可复选 链接&#xff1a;代码随想录 一次对&#xff0c;同样在进入下次循环时&#xff0c;注意startindex是从j…

欧莱雅校招负责人张泽宇:拥抱Z世代,探索新玩法

作为校招HR&#xff0c;你在雇主品牌创新实践的路上做过什么尝试&#xff1f; 2020年&#xff0c;欧莱雅正式推出了全新的雇主品牌价值主张 —— 敢为敢超越&#xff0c;就是欧莱雅&#xff08;Freedom to go beyond, thats the beauty of L’ORAL&#xff09;&#xff0c;鼓励…

使用ChatGPT进行AI对话

1.ChatGPT简介 ChatGPT是美国人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具&#xff0c;使用了Transformer神经网络架构&#xff0c;也是GPT-3.5架构&#xff0c;这是一种用于处理序列数据的模型&#xff0c;拥有语言理解和文本生成能力&#xff0c…

C/C++ 日期 时间 函数总结

使用C标准库 有四个与时间相关的类型&#xff1a;clock_t、time_t、size_t 和 tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数 头文件 #include <time.h> #include <stdio.h> tm 结构: struct tm {int tm_sec; // 秒&#xff0c;…

隐私计算-TEE执行环境

一、TEE 的定义 论述完 TEE 的概念后&#xff0c;接下来进一步解析 TEE 的深层定义。目前对于 TEE 的定义有很多种形式&#xff0c;针对于不同的安全性需求和平台&#xff0c;TEE 的定义也不尽相同&#xff0c;但在所有 TEE 的定义中都会包含两个最关键的点&#xff1a;独立执…

谈谈分布式一致性机制

分布式中一致性是非常重要的&#xff0c;分为弱一致性和强一致性。 现在主流的一致性协议一般都选择的是弱一致性的特殊版本&#xff1a;最终一致性。下面就从分布式系统的基本原则讲起&#xff0c;再整理一些遵循这些原则的协议或者机制&#xff0c;争取通俗易懂。 但是要真…

【通过代理监听UIScrollView的滚动事件 Objective-C语言】

一、输出,当UIScrollView滚动的时候,实时输出当前UIScrollView滚动的位置, 1.用代理实现吧, contentOffset,代表偏移吧,我需要你当UIScrollView滚动的时候,实时输出UIScrollView滚动的位置, 2.第一,我们如何获得UIScrollView滚动的位置呢,contentOffset,是不是就是…

【创作赢红包】LeetCode:232. 用栈实现队列

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340;算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;232. 用栈实现队列 题目描述&#xff1a;请你仅使用两个栈实现先入先出队…

【论文速递】ACL 2022 - 查询和抽取:将事件抽取细化为面向类型的二元解码

【论文速递】ACL 2022 - 查询和抽取&#xff1a;将事件抽取细化为面向类型的二元解码 【论文原文】&#xff1a;Query and Extract: Refining Event Extraction as Type-oriented Binary Decoding 【作者信息】&#xff1a;Wang, Sijia and Yu, Mo and Chang, Shiyu and Sun,…

IP地址规划方法

一、IP地址规划的基本步骤&#xff1a; &#xff08;1&#xff09;判断用户对网络以及主机数的需求&#xff1b; &#xff08;2&#xff09;计算满足用户需要的基本网络地址结构&#xff1b; &#xff08;3&#xff09;计算地址掩码&#xff1b; &#xff08;4&#xff09;…

React Three Fiber动画入门

使用静态对象和形状构建 3D 场景非常酷&#xff0c;但是当你可以使用动画使场景栩栩如生时&#xff0c;它会更酷。 在 3D 世界中&#xff0c;有一个称为角色装配的过程&#xff0c;它允许你创建称为骨架的特殊对象&#xff0c;其作用类似于骨骼和关节系统。 这些骨架连接到一块…

2023-03-24:音视频mp3和h264混合(muxer)编码为mp4,用go语言编写。

2023-03-24&#xff1a;音视频mp3和h264混合&#xff08;muxer&#xff09;编码为mp4&#xff0c;用go语言编写。 答案2023-03-24&#xff1a; 这是一个使用FFmpeg库将MP3和H.264混合编码为MP4的Go语言程序。程序的大体过程如下&#xff1a; 1.设置FFmpeg库路径和环境变量。…

ChatGPT来了,让我们快速做个AI应用

你好&#xff0c;我是徐文浩。 过去的两讲&#xff0c;我带着你通过OpenAI提供的Embedding接口&#xff0c;完成了文本分类的功能。那么&#xff0c;这一讲里&#xff0c;我们重新回到Completion接口。而且这一讲里&#xff0c;我们还会快速搭建出一个有界面的聊天机器人来给你…

五分钟了解支付、交易、清算、银行等专业名词的含义?

五分钟了解支付、交易、清算、银行等专业名词的含义&#xff1f;1. 支付类名词01 支付应用02 支付场景03 交易类型04 支付类型&#xff08;按通道类型&#xff09;05 支付类型&#xff08;按业务双方类型&#xff09;06 支付方式07 支付产品08 收银台类型09 支付通道10 通道类型…

Unity Avatar Cover System - 如何实现一个Avatar角色的智能掩体系统

文章目录简介变量说明实现动画准备动画状态机State 状态NoneStand To CoverIs CoveringCover To Stand高度适配高度检测脚部IK简介 本文介绍如何在Unity中实现一个Avatar角色的智能掩体系统&#xff0c;效果如图所示&#xff1a; 初版1.0.0代码已上传至SKFramework框架Package…

【Nginx】Nginx的学习(3.Nginx命令和nginx配置文件)

1. Nginx命令 1.1 启动nginx systemctl start nginx1.2 停止nginx systemctl stop nginx1.3 重载nginx # 重新加载配置文件 systemctl reload nginx1.4 查看nginx服务端口 netstat -anpl | grep nginx1.5 查看nginx进程 ps aux | grep nginx2. nginx的配置文件 2.1 查看…