php学习

php基础语法

一 php程序

1.php标记

开始标记<?php  和结束标记 ?>中间写 PHP 代码

当解析一个文件时,PHP 会寻找起始和结束标记,也就是告诉php 开始和停止解析二者之间的代码。此种解析方式使得PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略

2.php代码


echo  ----->可以输出一个或多个字符串,用逗号(,)隔开
print   ----->只允许输出一个字符串

<?phpecho 111,222;print 345;
?>

3.语句结束符 ;

4.注释

//  ----->单行注释

/*

*/   ------>多行注释

二 php变量

 1、声明变量

<?php$a='ooii';echo $a;
?>

2.赋值运算符

=

3.变量命名规则

  • 开头不能用数字
  • 中间不能有空格
<?php$a_new='ooii';  //下划线命名法echo $a_new;$a_New='ooi';   //小驼峰命名法echo $a_New;$A_New='oo';  //大驼峰命名法echo $A_New;
?>

php标量类型介绍

一 php标量数据类型

echo 输出数据值,开发时使用
var_dump 可以打印数据类型和值,测试时使用 

1.布尔型

布尔型通常用于条件判断

<?php$x = true;var_dump($x);echo '<hr>';$y = false;var_dump($y);
?>

2.整型

  • 整数不能包含逗号或空格
  • 整数是没有小数点的
  • 整数可以是正数或负数
  • 整型可以用三种格式来指定: 十进制、十六进制、八进制
    <?php
    $number = 0;
    var_dump($number);
    echo '<hr>';
    $number = 67;
    var_dump($number);
    echo '<hr>';
    $number = -322;
    var_dump($number);
    ?>

3.浮点型

带小数部分的数字

<?php$number = 10.03;var_dump($number);echo '<hr>';$number = -88.23;var_dump($number);
?>

4 字符串

  • 引号内的数据可以是单引号或双引号
  • 字符串不用引号会报错
  • 数字、浮点型、布尔型,用引号也属于字符串
<?php$str ='我是欧阳';var_dump($str);echo '<hr>';$str = 'My name is ou yang';var_dump($str);
?>

 

一个汉字三个长度

ps

这里说明一下单引号和双引号的区别

简而言之 就是双引号可以解析变量

在单引号的情况下,我们在第二个str变量中引入第一个str变量

发现显示出的还是$str

<?php$str ='我是欧阳';var_dump($str);echo '<hr>';$str = '$str My name is ou yang';var_dump($str);
?>

但是我们如果使用双引号来包裹第二个变量

<?php$str ='我是欧阳';var_dump($str);echo '<hr>';$str = "$str My name is ou yang";var_dump($str);
?>

 就可以发现第一个变量被引入了

二 php复合数据类型

三 php特殊数据类型

<?php$null;var_dump($null);echo  '<hr>';$null ='';var_dump($null);echo  '<hr>';$null = null;var_dump($null);
?>

 

php数组类型

一 数组

1.空数组

<?php$arr = array();var_dump($arr);$arr = [];var_dump($arr);
?>

2.索引数组

<?php$arr = array('ooii','ww','y');var_dump($arr);echo '<hr>';$arr = ['ooii','ww','y'];var_dump($arr);
?>

输出键为0的值

<?php$arr = array('ooii','ww','y');var_dump($arr[0]);
?>

3.关联数组

自定义键

<?php$arr = array('qwe'=>'ooii',  //ooii这一值的键定义为qwe'ww','y');var_dump($arr['qwe']);   
?>

输出一整个数组

print_r

<?php$arr = array('qwe'=>'ooii','ww','y');print_r($arr);
?>

看下print_r与var_dump的区别

第一行是print_r

第二行是var_dump

4.连接符

.

可以连接多个数据

    echo 'wy is:' . $arr[qwe];

二.php多维数组

1.二维数组

<?php$arr = array(array('ooii'),array('ww'),array('yy'),);print_r($arr);echo '<hr>';var_dump($arr);
?>

2.三维数组

<?php$arr = [['name' => '欧阳','school' => 'PHP中文网','gongfu' => ['PHP','小程序','layui','Thinkphp']],['name' => '西内','school' => 'PHP中文网','gongfu' => ['PHP','Thinkphp','Laravel','实战项目']],['name' => '强灭绝','school' => 'PHP中文网','gongfu' => ['HTML','PHP','layui','Thinkphp']]];print_r($arr)
?>

输出某一键值

    echo $arr[0]['name'];

三.php 数组循环

1.foreach

<?php$arr = array('ouyang' => '欧阳','ximen' => '西门','miejue' => '强灭绝');foreach ($arr as $v) {  //as 是给予 $v是循环每次value的值echo $v;echo '<hr>';}
?>

2.key value的循环

我们可以通过num循环来体现一下

<?php$arr = array('ouyang' => '欧阳','ximen' => '西门','miejue' => '强灭绝');$num=1;foreach ($arr as $v) {  echo $v;$num=$num+1;echo $num;echo '<hr>';}
?>

那么刚才循环的是值 我们看看能不能循环key

这里需要=>

<?php$arr = array('ouyang' => '欧阳','ximen' => '西门','miejue' => '强灭绝');foreach ($arr as $k =>$v) {echo $k.$v;echo '<hr>';}
?>

3.循环多维数组

<?php$arr = [['name' => '强欧阳','school' => 'PHP中文网'],['name' => '西门','school' => 'PHP中文网'],['name' => '强灭绝','school' => 'PHP中文网']];foreach ($arr as $k => $v) {print_r($v);echo '<hr>';}
?>

<?php$arr = [['name' => '强欧阳','school' => 'PHP中文网'],['name' => '西门','school' => 'PHP中文网'],['name' => '强灭绝','school' => 'PHP中文网']];foreach ($arr as $k => $v) {echo $v['name'].$v['school'];echo '<hr>';}
?>

 

这里可以看出循环先从外层数组开始

<?php$arr = [['name' => '强欧阳','school' => 'PHP中文网'],['name' => '西门','school' => 'PHP中文网'],['name' => '强灭绝','school' => 'PHP中文网']];foreach ($arr as $k => $v) {foreach($v as $vv){echo $vv;echo '<hr>';}}
?>

php条件判断

1、三元运算符 ? :

若str变量有值 则返回 i am ooii

否则error

    $str='ooii';echo $str ? 'i am ooii' : 'error';

    $str='';echo $str ? 'i am ooii' : 'error';

 

2.if

<?php$wy='ooii';if($wy){echo 'i am ooii';}

如果wy变量有值,则返回i am ooii

3. if else

<?php$wy='';if($wy){echo 'i am ooii';}else{echo 'error';}

wy变量为空,则返回 error

4. if elseif else

wyy有值,则返回yes

<?php$wy='';$wyy='ooii';if($wy){echo 'i am ooii';}elseif($wyy){echo 'yes';}else{echo'error';}

如果wy wyy的值都为空,则返回error

<?php$wy='';$wyy='';if($wy){echo 'i am ooii';}elseif($wyy){echo 'yes';}else{echo'error';}

5.switch default

进行条件匹配

<?php$wy='ooii';switch($wy){case 'ooii':echo 'i am ooii';break;case 'oi':echo 'error';break;default:echo $wy;}

6.php8新特性  match

这里php版本需要到8

<?php$wy = 'aaa';switch ($wy) {case 'ooii':echo 'i am ooii';break;case 'oi':echo 'error';break;default:echo $wy;}echo match ($wy) {'aaa' => '啊啊啊','bbb' => '不不不','ccc' => '踩踩踩'};
?>

与swtich区别

match 是表达式 要增加结束符号

match 可以返回给变量 或者直接输出

match 只支持单行表达式

match 匹配进行严格比较

php函数

一 函数介绍

1.函数判断

<?php
if($wy){echo 'ooii';
}
if(isset($wy)){echo 'ooi';
}
if(empty($wy)){echo 'oo';
}
?>

2.什么是函数

  • 函数是一段可以重复执行的代码片断
  • 函数是实现代码复用的重要手段。
  • 函数是现代编程语言最重要的基本单元
  • 函数永远是编程的核心工作

3.函数分类

根据函数的提供者(编写者),分为二类

  • 系统函数: 编程语言开发者事先写好提供给开发者直接使用的
  • 自定义函数: 用户根据自身需求,对系统功能进行扩展

二 系统函数

PHP 的真正力量来自它的函数:它拥有超过 1000个内建的函数

1.string字符串函数

<?php
//将宇符串转化为小写
$ouyang ='OUYANGKE';
echo strtolower($ouyang);
echo '<hr>';
//将字符串转化为大写
$miejue ='miejueshitai';
echo strtoupper($miejue);
echo '<hr>';
//将字符串分割为数组
$php='欧阳克,灭绝师太,西门大官人,天';
print_r(explode(',',$php));
echo '<hr>';
//将字符串进行md5加密
$ximen ='西门大官人';
echo md5($ximen);
?>

2.array数组函数

<?php
$arr=['欧阳克','灭绝师太','西门大官人','天'
];
//数组中元素的数量
echo count($arr);
echo '<hr>';
// 把数组元素组合为字符串
echo implode(',',$arr);
echo '<hr>';
//数组中是否存在指定的值
echo in_array('天',$arr);
echo '<hr>';
//删除数组中的最后一个元素
array_pop($arr);
print_r($arr);
?>

 

三 php自定义函数

1.函数的自定义语法

//创建函数
function fun_name(参数列表)
{
//函数体:由一条或多条语句组成,可以为空
}
  • 必须使用关键字: function 声明
  • 函数名称不区分大小写,多个单词推荐使用下划线连接

2.调用函数

<?php
//创建函数
function fun_name()
{return'我是wy';
}// 调用函数
echo fun_name();
?>

3.函数参数

<?php
//创建函数
function fun_name($name)
{return'我是:'.$name ;
}//调用函数
echo fun_name('ooii');
?>

  • 方法参数可以有默认值,有默认值可以不传值
  • 方法必须以返回的方式,不要用echo 输出的方式 
<?php
// 创建函数
function fun_name($name, $school = 'PHP中文网')
{return '我是:' . $name . ' from ' . $school;
}// 调用函数
echo fun_name('ooii', '过去');
?>

 

4.作用域

  • php中,只有函数作用域和全局作用域
  • 所有函数作用域中的变量,外部不可见
  • 全局作用域声明变量,在函数中是可见的

运算符

一.php运算符

<?php
var_dump(120+80);
echo '<hr>';
var_dump(120-80);
echo '<hr>';
var_dump( 120*80);
echo '<hr>';
var_dump(120/80);
echo '<hr>';
var_dump( 120%80);
echo '<hr>';
$num = 120;
var_dump( $num++);
echo '<hr>';
var_dump( $num--);
echo '<hr>';
var_dump( ++$num);
echo '<hr>';
var_dump(--$num);
echo '<hr>';
var_dump(120.80);
echo '<hr>';
$var1 ='PHP讲师:';
$var2 ='欧阳';
var_dump( $var1 .$var2);
  • 两个变量连接,没问题
  • 一个变量和字符串,没问题
  • 一个变量连接整型,必须在整型前加个空格

二 php赋值运算符

<?php
$int = 120;
var_dump($int);
echo '<hr>';
$int += 30;
var_dump( $int);
echo '<hr>';
$int = $int + 30;
var_dump($int);
echo '<hr>';
$int -= 30;
var_dump( $int);
echo '<hr>';
$int *= 30;
var_dump( $int);
echo '<hr>';
$int /= 30;
var_dump( $int);
echo '<hr>';
$int %= 30;
var_dump( $int);
echo '<hr>';
$int .= 30;
var_dump( $int);

 

三 php比较运算符

<?php
var_dump( 100 >100 );
echo '<hr>';
var_dump(100>90);
echo '<hr>';
var_dump( 100 >110 );
echo '<hr>';
var_dump( true >false );
echo '<hr>';
var_dump('php'>'php');
echo '<hr>';

 

1.==等于

<?php
var_dump( 100== 100 );
echo '<hr>';
var_dump( true =='true');
echo '<hr>';

这是不判断类型的 只判断值

2.===恒等于

<?php
var_dump( 100=== 100 );
echo '<hr>';
var_dump( true ==='true');
echo '<hr>';

判断类型 判断值

四 php逻辑运算符

1. and和&&

两个真 返回真

一个假 返回假

<?php
var_dump( 100 && 30);
echo '<hr/>';
var_dump( true && true );
echo '<hr/>';
var_dump( true and false );
echo '<hr/>';
var_dump( false and false );
echo '<hr/>';

2.or和||

一个真,返回真。

两个真,返回真。

两个假,返回假

<?php
var_dump( 120||80 );
echo '<hr/>';
var_dump( true||true );
echo '<hr/>';
var_dump( true or false );
echo '<hr/>';
var_dump( false or false );
echo '<hr/>';

3.xor

一个真、返回真。

两个真,返回假。

两个假,也返回假

<?php
var_dump(0 xor 1);
echo '<hr/>';
var_dump( true xor true );
echo '<hr/>';
var_dump( true xor false );
echo '<hr/>';
var_dump(false xor false );
echo '<hr/>';

4 !取反

一个真、返回真。

两个真,返回假。

两个假,也返回假。

循环

1.while

<?php
$int = 1;
while($int<10 ){echo $int;echo '<hr/>';$int ++;
}

2.do while

<?php
$int = 1;
while($int<10 ){echo $int;echo '<hr/>';$int ++;
}$int = 1;
do{$int ++;echo $int;echo '<hr/>';
}while($int<10);

 while与do while的区别

我们把条件改成int<1  显而易见条件不满足

但是结果有2

我们看下是谁执行的

<?php
$int = 1;
while($int<1 ){echo $int;echo '<hr/>';$int ++;echo 'while执行';
}$int = 1;
do{$int ++;echo $int;echo '<hr/>';echo 'do while执行';
}while($int<1);

因为while先执行

do while先判断

3.for

<?php
for( $int=1;$int<10; $int++){echo $int;echo '<hr>';
}

4。continue

  • 结束当前循环,进入下次循环
  • 在循环语句中使用 while for
<?php
for( $int=1; $int<10;$int++){if($int == 5){//结束当前循环,进入下次循环continue;}var_dump($int);echo '<hr>';
}

 

5、break

  • 结束循环
  • 在循环语句中使用 while forswitch
  • 可以跳出多层循环 
    <?php
    for( $int=1;$int<10;$int++){if($int == 5){//结束当前循环,进入下次循环break;}var_dump($int);echo '<hr>';
    }

 类与对象

1、创建类

<?php
# 创建类
class Teacher{}
# 调用类(实例化)
$ouyang = new Teacher();
$miejue = new Teacher();
$ximen = new Teacher();

2、复合数据类型

<?php
# 创建类
class Teacher{}
# 调用类(实例化)
$ouyang = new Teacher();
$miejue = new Teacher();
$ximen = new Teacher();
var_dump($ouyang);
var_dump($miejue);
var_dump($ximen);

3、对象

var_dump($ouyang == $miejue);
echo '<hr/>';
var_dump($miejue == $ximen);
echo '<hr/>';
var_dump($ouyang == $ximen);

 

4、成员变量

  • 成员变量,也叫: 类属性
<?php
# 创建类
class Teacher{public $name = 'aa';public $school = 'PHP中文网';}$ouyang = new Teacher();echo $ouyang->name;echo '<hr/>';echo $ouyang->school;

 

5、成员方法

<?php
class Teacher{public $name = 'ooii';public $school = 'PHP中文网';public function fun1(){echo '姓名:ooii,学校:PHP中文网<hr/>';}public function fun2(){return '姓名:ooii,学校:PHP中文网<hr/>';}public function fun3(){// 在类中使用伪变量: "$this" 引用当前类的成员变量return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';}public function fun4(){// 在类中使用伪变量: "$this" 引用当前类的成员方法return $this->fun3();}}// 类实例化$yangmi = new Teacher();$yangmi->fun1();echo $yangmi->fun2();echo $yangmi->fun3();echo $yangmi->fun4();

 

  • 类里成员有两种:属性(变量)和行为(方法)

4、魔术方法

 

构造方法

<?php
class Teacher{public $name;public $school;// 构造方法public function __construct($name, $school){$this->name = $name;$this->school = $school;}public function fun1(){echo '姓名:灭绝师太,学校:PHP中文网<hr/>';}public function fun2(){return '姓名:灭绝师太,学校:PHP中文网<hr/>';}public function fun3(){// 在类中使用伪变量: "$this" 引用当前类的成员变量return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';}public function fun4(){// 在类中使用伪变量: "$this" 引用当前类的成员方法return $this->fun3();}}// 实例化$obj = new Teacher('aa','bb');echo $obj->fun4();

析构方法

<?php
class Teacher{public $name;public $school;// 构造方法public function __construct($name, $school){$this->name = $name;$this->school = $school;}public function fun1(){echo '姓名:灭绝师太,学校:PHP中文网<hr/>';}public function fun2(){return '姓名:灭绝师太,学校:PHP中文网<hr/>';}public function fun3(){// 在类中使用伪变量: "$this" 引用当前类的成员变量return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';}public function fun4(){// 在类中使用伪变量: "$this" 引用当前类的成员方法return $this->fun3();}// 析构方法public function __destruct(){echo '类执行完毕,要关闭了';}}// 实例化$obj = new Teacher('aa','bb');echo $obj->fun3();

类的三大特性

  • 继承:可以让某个类型的对象获得另一个类型的对象的属性和方法
  • 封装:指将客观事物抽象成类,每个类对自身的数据和方法实行保护
  • 多态:指同一个实体同时具有多种形式,它主要体现在类的继承体系

1.继承

  • extends 关键词继承父类
    <?php
    class Teacher{public $name;public $school;// 构造方法public function __construct($name, $school){$this->name = $name;$this->school = $school;}public function fun1(){echo '姓名:灭绝师太,学校:PHP中文网<hr/>';}public function fun2(){return '姓名:灭绝师太,学校:PHP中文网<hr/>';}public function fun3(){// 在类中使用伪变量: "$this" 引用当前类的成员变量return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';}public function fun4(){// 在类中使用伪变量: "$this" 引用当前类的成员方法return $this->fun3();}// 析构方法public function __destruct(){echo '类执行完毕,要关闭了';}}
    // 子类代码复用
    class PHPTeacher extends Teacher{}// 实例化$obj = new PHPTeacher('aa','bb');echo $obj->fun3();

2、封装

  • public 默认的, 关键词定义类内、类外、子类都可见
  • protected 关键词定义类内、子类可见,类外不可见
  • private 关键词定义类内可见, 子类、类外不可见
<?php
class Teacher{protected $name;private $school;// 构造方法public function __construct($name, $school){$this->name = $name;$this->school = $school;}protected function fun1(){echo '姓名:灭绝师太,学校:PHP中文网<hr/>';}private function fun2(){return '姓名:灭绝师太,学校:PHP中文网<hr/>';}public function fun3(){// 在类中使用伪变量: "$this" 引用当前类的成员变量return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';}public function fun4(){// 在类中使用伪变量: "$this" 引用当前类的成员方法return $this->fun3();}// 析构方法public function __destruct(){echo '类执行完毕,要关闭了';}}// 子类代码复用class PHPTeacher extends Teacher{public function fun5(){$this->fun1();}public function fun6(){$this->fun2();}public function fun7(){return $this->name;}public function fun8(){return $this->school;}}// 实例化$obj = new Teacher('西门大官人','PHP中文网');echo $obj->fun1();echo $obj->fun2();echo $obj->name;echo $obj->school;$obj2 = new PHPTeacher('西门大官人','PHP中文网');echo $obj2->fun1();echo $obj2->fun2();echo $obj2->fun5();echo $obj2->fun6();echo $obj2->fun7();echo $obj2->fun8();

 

3、多态

  • 实现多态的前提是要先继承,在重写父类方法
    <?php
    class Teacher{protected $name;private $school;// 构造方法public function __construct($name, $school){$this->name = $name;$this->school = $school;}protected function fun1(){echo '姓名:灭绝师太,学校:PHP中文网<hr/>';}private function fun2(){return '姓名:灭绝师太,学校:PHP中文网<hr/>';}public function fun3(){// 在类中使用伪变量: "$this" 引用当前类的成员变量return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';}public function fun4(){// 在类中使用伪变量: "$this" 引用当前类的成员方法return $this->fun3();}// 析构方法public function __destruct(){echo '类执行完毕,要关闭了';}}// 子类代码复用class PHPTeacher extends Teacher{public function fun5(){$this->fun1();}public function fun6(){$this->fun2();}public function fun4(){return '我是重写的方法';}}$obj2 = new PHPTeacher('西门大官人','PHP中文网');echo $obj2->fun4();

 

命名空间

1、命名空间

  • 解决全局成员的命名冲突问题
    <?php
    function php(){}
    function php(){}

 

2、创建命名空间

  • 命名空间使用 "namespace" 关键字声明
<?php
namespace one{function php(){}
}
namespace two{function php(){}
}

 3、常量、函数、类

<?php
namespace one{const NAME = '灭绝师太';$name = '灭绝师太';function php(){}class phpcn{}
}
namespace two{const NAME = '西门大官人';$name = '西门大官人';function php(){}class phpcn{}
}
namespace three{echo $name;echo NAME;php();new phpcn();
}

 4、子命名空间

就跟windows目录一样\

namespace{const NAME = '灭绝师太';function php(){}class phpcn{}
}
namespace one{const NAME = '西门大官人';function php(){}class phpcn{}
}
namespace one\two{const NAME = '西门大官人';function php(){}class phpcn{}
}
namespace one\two\three{const NAME = '西门大官人';function php(){}class phpcn{}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用PSIM软件生成DSP28335流水灯程序

最近在学习DSP28335芯片&#xff0c;然后在使用PSIM仿真软件时发现这个仿真软件也支持28335芯片&#xff0c;于是就想学习下如何在PSIM软件中使用DSP28335芯片。在PSIM自带的官方示例中有使用DSP28335芯片的相关例子。 工程下载链接 https://download.csdn.net/download/qq_20…

图解CART分类树评估器的参数

图解CART分类树评估器的参数

联邦学习:密码学 + 机器学习 + 分布式 实现隐私计算,破解医学界数据孤岛的长期难题

联邦学习&#xff1a;密码学 机器学习 分布式 提出背景&#xff1a;数据不出本地&#xff0c;又能合力干大事联邦学习的问题 分布式机器学习&#xff1a;解决大数据量处理的问题横向联邦学习&#xff1a;解决跨多个数据源学习的问题纵向联邦学习&#xff1a;解决数据分散在多…

(一)SpringBoot3---尚硅谷总结

目录 示例Demo&#xff1a; 1、我们先来创建一个空工程&#xff1a; 2、我们通过Maven来创建一个Module&#xff1a; 3、让此Maven项目继承父项目: 4、导入web开发的场景启动器 5、创建Springboot项目的主入口程序&#xff1a; 6、举例测试&#xff1a; 7、Springboot还能…

020-信息打点-红蓝队自动化项目资产侦察企查产权武器库部署网络空间

020-信息打点-红蓝队自动化项目&资产侦察&企查产权&武器库部署&网络空间 #知识点&#xff1a; 1、工具项目-红蓝队&自动化部署 2、工具项目-自动化侦查收集提取 3、工具项目-综合&网络空间&信息 演示案例&#xff1a; ➢自动化-武器库部署-F8x ➢自…

leetcode—图 岛屿数量

岛屿数量 给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网…

RabbitMQ入门篇【图文并茂,超级详细】

&#x1f973;&#x1f973;Welcome 的Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 &#x1f973;&#x1f973;Welcome 的Huihuis Code World ! !&#x1f973;&#x1f973; 前言 1.什么是MQ 2.理解MQ 3.生活…

记一个奇怪的万能密码

前言 打的站点打多了&#xff0c;什么奇怪的问题都会发生 打点 开局一个登录框 用户枚举到账号爆破 测了一下&#xff0c;没发现admin的弱口令&#xff0c;但是发现存在用户枚举漏洞&#xff0c;因此准备跑一下账号 输入密码为123456 进行账号爆破 成功爆破出账号 是的…

【ARM 嵌入式 编译系列 7.3 -- GCC 链接脚本中 DISCARD 与 .ARM.exidx】

请阅读【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】 文章目录 背景.ARM.exidx方法一:使用链接器脚本方法二:使用链接器选项注意事项背景 在移植 RT-Thread 到 cortex-m33(RA4M2)上的时候,在编译的时候遇到下面问题: Building target: ra4m2.elf arm

PyTorch视觉工具箱:图像变换与上采样技术详解(1)

目录 Pytorch中Vision functions详解 pixel_shuffle 用途 用法 使用技巧 注意事项 参数 数学理论公式 示例代码及输出 pixel_unshuffle 用途 用法 使用技巧 注意事项 参数 数学理论公式 示例代码及输出 pad 用途 用法 使用技巧 注意事项 参数 示例代码…

智能机器人与旋量代数(9)

Chapt 3. 螺旋运动与旋量代数 3.1 螺旋运动 螺旋运动是关于一条空间直线的一个旋转运动&#xff0c;并伴随沿此直线的一个平移。是一种刚体绕空间轴 s s s旋转 θ \theta θ角&#xff0c;再沿该轴平移距离 d d d的复合运动&#xff0c;类似螺母沿螺纹做进给运动的情形。 一…

2024年【焊工(初级)】考试内容及焊工(初级)新版试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 焊工&#xff08;初级&#xff09;考试内容参考答案及焊工&#xff08;初级&#xff09;考试试题解析是安全生产模拟考试一点通题库老师及焊工&#xff08;初级&#xff09;操作证已考过的学员汇总&#xff0c;相对有…

docker 使用 vcs/2018 Verdi等 eda 软件

好不容易在ubuntu 安装好了eda软件&#xff0c;转眼就发现了自己的无知。 有博主几年前就搞定了docker上的EDA工具。而且更全&#xff0c;更简单。只恨自己太无知啊。 Synopsys EDA Tools docker image - EDA资源使用讨论 - EETOP 创芯网论坛 (原名&#xff1a;电子顶级开发网…

python解决从有序数组中寻找中位数

如果给定两个长度分别是m和n的有序数组array1和array2&#xff0c;需要对这两个有序数组找出其中的中位数&#xff0c;需要保证时间复杂度是O(long(min(m,n))&#xff0c;空间复杂度是O(1)。如下例子&#xff1a; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#…

【教程】混淆Dart 代码

什么是代码混淆&#xff1f; 代码混淆是一种将应用程序二进制文件转换为功能上等价&#xff0c;但人类难于阅读和理解的行为。在编译 Dart 代码时&#xff0c;混淆会隐藏函数和类的名称&#xff0c;并用其他符号替代每个符号&#xff0c;从而使攻击者难以进行逆向工程。 Flut…

ChatGPT和文心一言哪个更好用?

目录 一、ChatGPT和文心一言大模型的对比分析 1.1 二者训练的数据情况分析 1.2 训练大模型数据规模和参数对比 1.3 二者3.5版本大模型对比总结 二、ChatGPT和文心一言功能对比分析 2.1 二者产品提供的功能情况分析 2.2 测试一下各种功能的特性 2.2.1 文本创作能力 2.2…

电脑提示“No Boot Device”怎么办?

在Windows 11/10/8/7启动时遇到错误如“No Boot Device Found”和“未找到引导设备硬盘3F0”时&#xff0c;会导致电脑无法正常开机。那么&#xff0c;No Boot Device错误该怎么修复呢&#xff1f;下面我们就来了解一下。 修复 1. 检查启动顺序并将BIOS的设置重置为默认值 为…

非线性最小二乘问题的数值方法 —— 狗腿法 Powell‘s Dog Leg Method (II, Python 简单实例)

Title: 非线性最小二乘问题的数值方法 —— 狗腿法 Powell‘s Dog Leg Method (II, Python 简单实例) 姊妹博文 非线性最小二乘问题的数值方法 —— 狗腿法 Powell‘s Dog Leg Method (I - 原理与算法) 0.前言 本篇博文作为对前述 “非线性最小二乘问题的数值方法 —— 狗腿法…

【mars3d】内置的右键测量菜单单击关闭按钮无法关闭测量结果说明

1.【mars3d】内置的右键测量菜单单击关闭按钮无法关闭测量结果说明 2.内置的右击地图查看此处坐标&#xff0c;出现的弹框按钮同样无法关闭的解决方案。 解决说明&#xff1a; 1.这个问题和mars3d没有关系&#xff0c;是and那边的问题&#xff0c;需要尝试固定下vue版本3.3.0或…

测试 yolov8 分割模型 边缘检测

发现 cfg/default.yaml 参数 mask_ratio 等于4 直接训练如下边缘分割标签,推理时mask 稀疏&#xff0c;训练时分数偏低,mask_ratio 改为1训练时打印的mask 的 P指标一直为0,将imgsz原图size 训练分数也不高 标注用的是labelme多边形 阅读源码发现可能是因为mask缩放导致 且出现…