php学习

php基础语法

一 php程序

1.php标记

开始标记中间写 PHP 代码

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

2.php代码


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

3.语句结束符 ;

4.注释

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

/*

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

二 php变量

 1、声明变量

2.赋值运算符

=

3.变量命名规则

  • 开头不能用数字
  • 中间不能有空格

php标量类型介绍

一 php标量数据类型

php学习_第1张图片

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

1.布尔型

布尔型通常用于条件判断

';
    $y = false;
    var_dump($y);
?>

php学习_第2张图片

2.整型

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

    php学习_第3张图片

3.浮点型

带小数部分的数字

';
    $number = -88.23;
    var_dump($number);
?>

php学习_第4张图片

4 字符串

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

 php学习_第5张图片

一个汉字三个长度

ps

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

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

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

发现显示出的还是$str

';
    $str = '$str My name is ou yang';
    var_dump($str);
?>

php学习_第6张图片

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

';
    $str = "$str My name is ou yang";
    var_dump($str);
?>

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

php学习_第7张图片

二 php复合数据类型

php学习_第8张图片

三 php特殊数据类型

php学习_第9张图片

';
    $null ='';
    var_dump($null);
    echo  '
'; $null = null; var_dump($null); ?>

 php学习_第10张图片

php数组类型

一 数组

1.空数组

php学习_第11张图片

2.索引数组

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

输出键为0的值

3.关联数组

自定义键

'ooii',  //ooii这一值的键定义为qwe
        'ww',
        'y'

    );
    var_dump($arr['qwe']);   
?>

输出一整个数组

print_r

'ooii',
        'ww',
        'y'

    );
    print_r($arr);
?>

看下print_r与var_dump的区别

第一行是print_r

第二行是var_dump

php学习_第12张图片

4.连接符

.

可以连接多个数据

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

php学习_第13张图片

二.php多维数组

1.二维数组

';
    var_dump($arr);
?>

2.三维数组

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

php学习_第14张图片

输出某一键值

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

三.php 数组循环

1.foreach

 '欧阳',
        'ximen' => '西门',
        'miejue' => '强灭绝'
    );

    foreach ($arr as $v) {  //as 是给予 $v是循环每次value的值
        echo $v;
        echo '
'; } ?>

php学习_第15张图片

2.key value的循环

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

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

php学习_第16张图片

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

这里需要=>

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

php学习_第17张图片

3.循环多维数组

 '强欧阳',
            'school' => 'PHP中文网'
        ],
        [
            'name' => '西门',
            'school' => 'PHP中文网'
        ],
        [
            'name' => '强灭绝',
            'school' => 'PHP中文网'
        ]
    ];

    foreach ($arr as $k => $v) {
        print_r($v);
        echo '
'; } ?>

php学习_第18张图片

 '强欧阳',
            'school' => 'PHP中文网'
        ],
        [
            'name' => '西门',
            'school' => 'PHP中文网'
        ],
        [
            'name' => '强灭绝',
            'school' => 'PHP中文网'
        ]
    ];

    foreach ($arr as $k => $v) {
        echo $v['name'].$v['school'];
        echo '
'; } ?>

 php学习_第19张图片

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

 '强欧阳',
            'school' => 'PHP中文网'
        ],
        [
            'name' => '西门',
            'school' => 'PHP中文网'
        ],
        [
            'name' => '强灭绝',
            'school' => 'PHP中文网'
        ]
    ];

    foreach ($arr as $k => $v) {
        foreach($v as $vv){
            echo $vv;
            echo '
'; } } ?>

php学习_第20张图片

php条件判断

1、三元运算符 ? :

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

否则error

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

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

 

2.if

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

3. if else

wy变量为空,则返回 error

php学习_第21张图片

4. if elseif else

wyy有值,则返回yes

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

5.switch default

进行条件匹配

6.php8新特性  match

这里php版本需要到8

 '啊啊啊',
        'bbb' => '不不不',
        'ccc' => '踩踩踩'
    };
?>

与swtich区别

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

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

match 只支持单行表达式

match 匹配进行严格比较

php函数

一 函数介绍

1.函数判断

2.什么是函数

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

3.函数分类

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

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

二 系统函数

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

php学习_第22张图片

1.string字符串函数

php学习_第23张图片

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

php学习_第24张图片

2.array数组函数

php学习_第25张图片

';
// 把数组元素组合为字符串
echo implode(',',$arr);
echo '
'; //数组中是否存在指定的值 echo in_array('天',$arr); echo '
'; //删除数组中的最后一个元素 array_pop($arr); print_r($arr); ?>

 php学习_第26张图片

三 php自定义函数

1.函数的自定义语法

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

2.调用函数

3.函数参数

  • 方法参数可以有默认值,有默认值可以不传值
  • 方法必须以返回的方式,不要用echo 输出的方式 

 

4.作用域

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

运算符

一.php运算符

php学习_第27张图片

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

二 php赋值运算符

php学习_第28张图片

';
$int += 30;
var_dump( $int);
echo '
'; $int = $int + 30; var_dump($int); echo '
'; $int -= 30; var_dump( $int); echo '
'; $int *= 30; var_dump( $int); echo '
'; $int /= 30; var_dump( $int); echo '
'; $int %= 30; var_dump( $int); echo '
'; $int .= 30; var_dump( $int);

 php学习_第29张图片

三 php比较运算符

php学习_第30张图片

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

 php学习_第31张图片

1.==等于

';
var_dump( true =='true');
echo '
';

php学习_第32张图片

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

2.===恒等于

';
var_dump( true ==='true');
echo '
';

php学习_第33张图片

判断类型 判断值

四 php逻辑运算符

php学习_第34张图片

1. and和&&

两个真 返回真

一个假 返回假

';
var_dump( true && true );
echo '
'; var_dump( true and false ); echo '
'; var_dump( false and false ); echo '
';

php学习_第35张图片

2.or和||

一个真,返回真。

两个真,返回真。

两个假,返回假

';
var_dump( true||true );
echo '
'; var_dump( true or false ); echo '
'; var_dump( false or false ); echo '
';

php学习_第36张图片

3.xor

一个真、返回真。

两个真,返回假。

两个假,也返回假

';
var_dump( true xor true );
echo '
'; var_dump( true xor false ); echo '
'; var_dump(false xor false ); echo '
';

php学习_第37张图片

4 !取反

一个真、返回真。

两个真,返回假。

两个假,也返回假。

循环

1.while

';
    $int ++;
}

php学习_第38张图片

2.do while

';
    $int ++;
}

$int = 1;
do{
    $int ++;
    echo $int;
    echo '
'; }while($int<10);

php学习_第39张图片

 while与do while的区别

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

但是结果有2

我们看下是谁执行的

';
    $int ++;
    echo 'while执行';
}

$int = 1;
do{
    $int ++;
    echo $int;
    echo '
'; echo 'do while执行'; }while($int<1);

php学习_第40张图片

因为while先执行

do while先判断

3.for

';
}

php学习_第41张图片

4。continue

  • 结束当前循环,进入下次循环
  • 在循环语句中使用 while for
';
}

 php学习_第42张图片

5、break

  • 结束循环
  • 在循环语句中使用 while forswitch
  • 可以跳出多层循环 
    ';
    }

    php学习_第43张图片

 类与对象

1、创建类

2、复合数据类型

php学习_第44张图片

3、对象

var_dump($ouyang == $miejue);
echo '
'; var_dump($miejue == $ximen); echo '
'; var_dump($ouyang == $ximen);

 php学习_第45张图片

4、成员变量

  • 成员变量,也叫: 类属性
name;
  echo '
'; echo $ouyang->school;

 php学习_第46张图片

5、成员方法

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

php学习_第47张图片 

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

4、魔术方法

php学习_第48张图片 

构造方法

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

析构方法

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

php学习_第49张图片

类的三大特性

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

1.继承

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

    php学习_第50张图片

2、封装

  • public 默认的, 关键词定义类内、类外、子类都可见
  • protected 关键词定义类内、子类可见,类外不可见
  • private 关键词定义类内可见, 子类、类外不可见
name = $name;
      $this->school = $school;
    }
    protected function fun1(){
      echo '姓名:灭绝师太,学校:PHP中文网
'; } private function fun2(){ return '姓名:灭绝师太,学校:PHP中文网
'; } public function fun3(){ // 在类中使用伪变量: "$this" 引用当前类的成员变量 return '姓名:'.$this->name.',学校:'.$this->school.'
'; } 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、多态

  • 实现多态的前提是要先继承,在重写父类方法
    name = $name;
          $this->school = $school;
        }
        protected function fun1(){
          echo '姓名:灭绝师太,学校:PHP中文网
    '; } private function fun2(){ return '姓名:灭绝师太,学校:PHP中文网
    '; } public function fun3(){ // 在类中使用伪变量: "$this" 引用当前类的成员变量 return '姓名:'.$this->name.',学校:'.$this->school.'
    '; } 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();

 php学习_第51张图片

命名空间

1、命名空间

  • 解决全局成员的命名冲突问题

 

2、创建命名空间

  • 命名空间使用 "namespace" 关键字声明

 3、常量、函数、类

 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{
		
	}
}

你可能感兴趣的:(php,学习,开发语言)