php学习

php基础语法

一 php程序

1.php标记

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

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

2.php代码


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

<?php
    echo 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{
		
	}
}

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

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

相关文章

个人云服务器docker搭建部署前后端应用-myos

var code "87c5235c-b551-45bb-a5e4-9593cb104663" mysql、redis、nginx、java应用、前端应用部署 本文以单台云服务器为例&#xff1a; 1. 使用腾讯云服务器 阿里或其他云服务器皆可&#xff0c;类似 安装系统&#xff0c;现在服务器系统都集成安装了docker镜像&a…

区域入侵烟火检测智慧安监AI智能分析网关V4如何添加新用户并分配权限?

AI边缘计算智能分析网关V4性能高、功耗低、检测速度快&#xff0c;易安装、易维护&#xff0c;硬件算法可按需组合、按场景配置&#xff0c;每个摄像头可同时配置3种算法&#xff0c;能同时对16路视频流进行处理和分析。硬件内置近40种AI算法模型&#xff0c;支持对接入的视频图…

Elasticsearch:聊天机器人、人工智能和人力资源:电信公司和企业组织的成功组合

作者&#xff1a;来自 Elastic Jrgen Obermann, Piotr Kobziakowski 让我们来谈谈大型企业人力资源领域中一些很酷且改变游戏规则的东西&#xff1a;生成式 AI 和 Elastic Stack 的绝佳组合。 现在&#xff0c;想象一下大型电信公司的典型人力资源部门 — 他们正在处理一百万件…

小红书达人推广模式有哪些,品牌投放策略总结

小红书是一个以种草为核心的平台&#xff0c;而品牌方进行种草时&#xff0c;就需要依托达人的力量。今天我们和大家分享下小红书达人推广模式有哪些&#xff0c;品牌投放策略总结&#xff01; 一、小红书达人推广模式有哪些 1. 明星种草 这种小红书达人推广模式&#xff0c;依…

利用STM32CubeMX和keil模拟器,3天入门FreeRTOS(2.0) —— 如何删除任务

前言 &#xff08;1&#xff09;FreeRTOS是我一天过完的&#xff0c;由此回忆并且记录一下。个人认为&#xff0c;如果只是入门&#xff0c;利用STM32CubeMX是一个非常好的选择。学习完本系列课程之后&#xff0c;再去学习网上的一些其他课程也许会简单很多。 &#xff08;2&am…

WPF多值转换器

背景&#xff1a;实现Slider拖动可以调整rgb 单转换器&#xff1a;WPF中数据绑定转换器Converter-CSDN博客 在View中&#xff1a; <StackPanel Orientation"Vertical"><Slider x:Name"slider_R" Minimum"0" Maximum"255" Wi…

Python爬虫采集下载中国知网《出版来源导航》PDF文档

时隔一年&#xff0c;很久没更新博客了。今天给大家带来一个采集 &#xff1a;出版来源导航 这个是网址是中国知网的&#xff0c;以下代码仅限于此URL&#xff08;出版来源导航&#xff09;采集&#xff0c;知网的其他网页路径采集不一定行&#xff0c;大家可以试试。 以下代码…

《绝地求生大逃杀》怎么买衣服 Steam商店服装购买方法

《绝地求生大逃杀》怎么买衣服&#xff1f;游戏中好看的服装有不少&#xff0c;大家可能开箱并没开出来&#xff0c;想买却不知具体的入手途径&#xff0c;今天闲游盒带来《绝地求生大逃杀》怎么买衣服 Steam商店服装购买方法&#xff0c;希望对各位有帮助。 打开Steam&#xf…

ffmpeg和opencv一些容易影响图片清晰度的操作

ffmpeg 转视频或者图片&#xff0c;不指定码率清晰度会下降 ffmpeg -i xxx.png xxx.mp4 码率也叫比特率&#xff08;Bit rate&#xff09;(也叫数据率)是一个确定整体视频/音频质量的参数&#xff0c;秒为单位处理的字节数&#xff0c;码率和视频质量成正比&#xff0c;在视频…

高效办公-电脑的基本组成

作为一位网络工程师在公司内部混久了也兼职了桌面运维了&#xff0c;感觉做网管也是有一些坑的&#xff0c;所以记录一下吧。然后忽然觉得公众号内容有点专业了&#xff0c;那就增加一点办公常识吧&#xff0c;主要是一些电脑使用方面的设置和简单优化&#xff0c;利人利己。 一…

RAR分卷压缩文件可以合并成一个吗?推荐2个方法!

有时候文件太大&#xff0c;我们在压缩RAR文件时会选择压缩成分卷文件&#xff0c;这样更便于传送。如果后续只想要一个压缩包&#xff0c;如何把RAR分卷压缩文件合并起来呢&#xff1f;下面小编分享2个方法&#xff0c;不清楚的小伙伴一起来看看吧&#xff01; 方法一&#xf…

linux安装docker(入门一)

环境&#xff1a;centos 7(linux) 网站 官网: https://docs.docker.com/ Docker Hub 网站: https://hub.docker.com/ 容器官方概述 一句话概括容器&#xff1a;容器就是将软件打包成标准化单元&#xff0c;以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 &…

[分章:阅读]《我的第一本算法书》

第一章数据结构 1.链表 1、数据结构之一&#xff0c;线性排列数据&#xff0c;指针链接数据&#xff1b;访问O&#xff08;n&#xff09;&#xff0c;删除/添加O&#xff08;1&#xff09; 2、类似链条。 2.数组 1、线性排列数据&#xff0c;含数据下标&#xff08;即索引&…

Linux忘记密码

1.服务器启动界面出现3秒倒计时内&#xff0c;按一下“e”键 2.向右移动光标到ro\这个位置后边&#xff0c;插入&#xff1a;rw init/sysroot/bin/sh_ 切记sh_的下划线后边不要有空格&#xff0c;不然会报错 3.修改完成直接按CtrlX启动系统 4.输入 chroot /sysroot切换进去 5.…

Xftp连接不上Linux虚拟机的原因解决方法

前言&#xff1a; 在当今数字化时代&#xff0c;远程连接到Linux虚拟机是许多开发者和系统管理员日常工作的一部分。然而&#xff0c;有时候&#xff0c;面对Xftp连接不上Linux虚拟机的问题&#xff0c;我们可能感到困惑和无措。这个看似小问题可能导致工作中断&#xff0c;因…

【wu-framework-parent 1.2.2-JDK17-SNAPSHOT 新版本中的 ACW】

版本: 1.2.2-JDK17-SNAPSHOT 项目地址&#xff1a;https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-smart-intergration/wu-smart-acw 演示地址&#xff1a;http://124.222.48.62:30193/wu-smart-acw-ui/#/login admin/admin docker启动 docker …

移动CRM系统是什么?能帮企业做哪些事情?

移动CRM&#xff0c;即移动客户关系管理&#xff0c;是一种利用移动设备进行客户关系管理的工具。随着移动技术的飞速发展&#xff0c;移动CRM在商业领域得到了广泛应用。本文将对移动CRM的概念、功能和作用、价格等方面进行详细介绍。 1.移动crm的概念 移动CRM是基于客户关系…

Facebook的可访问性使命:构建无障碍社交空间

在当今数字时代&#xff0c;社交媒体不仅是人们交流、分享和连接的平台&#xff0c;更是构建开放、包容社交环境的关键。Facebook&#xff0c;作为全球最大的社交媒体平台之一&#xff0c;积极推动着可访问性使命&#xff0c;致力于构建一个无障碍的社交空间&#xff0c;使每个…

2 - 部署Redis集群架构

部署Redis集群架构 部署Redis集群部署管理主机第一步 准备ruby脚本的运行环境第二步 创建脚本第三步 查看脚本帮助信息 配置6台Redis服务器第一步 修改配置文件启用集群功能第二步 重启redis服务第三步 查看Redis-server进程状态&#xff08;看到服务使用2个端口号为成功&#…

Intel Atom + Artix-7 100T FPGA,CompactRIO单板控制器

模拟和数字I/O&#xff0c;RMC&#xff0c;DisplayPort&#xff0c;1.33 GHz双核CPU&#xff0c;1 GB DRAM&#xff0c;4 GB存储容量&#xff0c;Artix-7 100T FPGA&#xff0c;CompactRIO单板控制器 CompactRIO控制器是搭载了实时处理器和用户可编程FPGA的嵌入式控制器。其产…