zoukankan      html  css  js  c++  java
  • php速成_day1

    一、概述

    1、什么是PHP

    • PHP ( Hypertext Preprocessor ),是英文超级文本预处理语言的缩写。PHP 是一种 跨平台、嵌入式的服务器端执行的描述语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言。

    • 跨平台:在多种操作系统平台进行开发和使用 windows macos linux

    • 嵌入式:可以和HTML文档进行混合开发 PHP连接数据库进行数据的交互

    • PHP开发的网页的后缀是.php。PHP语言加Mysql数据库组合是网络应用开发的最佳组合,具有开源、免费、便捷、学习简单、效率高、面向对象、实用性强等优点。

    • 开源:公开开放源代码,世界各地的开发者可以进行维护和开发

    • 免费:使用PHP进行开发的软件,无需支付其他付费

    • 快速开发:开发网络应用速度快,学习成本低,具有大量的函数和方法处理相关操作

    2、PHP可以用来做什么

    PHP进行服务器端数据开发。web应用的后端开发。

    PHP可以满足绝大部分的业务场景开发。

    • 网站开发
    • API接口开发
    • 内部OA系统开发
    • 移动端后台开发
    • 游戏开发
    • 服务器开发
    • 广告系统开发

    ①百度的搜索页面平台展示

    ②PHP可以实现登录或者注册的相关功能

    3、PHP开发的知名项目网站

    • FaceBook(全球最大的社交网站)
    • 淘宝(国内最大的电商平台)
    • Yahoo(2007年以前最大的搜索引擎)
    • 新浪(国内知名媒体网站)
    • 网易(国内知名媒体网站)
    • 腾讯(国内知名媒体网站)
    • 百度(目前国内最大的搜索引擎)
    • 中关村在线(国内最大的硬件评测平台)

    二、PHP开发前准备

    1、PHP环境介绍

    ①开发环境 进行PHP相关代码应用的开发

    WAMP W(Windows)+A(Apache)+M(Mysql)+P(PHP)

    ②线上环境 运维环境 真实的PHP项目应用运行的环境

    LAMP L(Linux)+A(Apache)+M(Mysql)+P(PHP)

    部署环境的方式:

    ①分开式安装、组件式 把相关的环境软件进行分开安装和配置

    ②集成安装 通过某一种软件包,直接安装好以上的环境

    phpstudy wamp xampp

    区别:集成安装会安装配置简单快速,分开、组件式的安装定制化更加强一些。

    2、phpstuday的安装使用

    建议在虚拟机的windows10中进行本次操作的所有内容

    ①使用安装包进行解压安装

    ②解压到指定的位置

    ③点击启动PHP相关环境

    三、网站页面访问流程

    1、网页类型

    ①静态网页

    页面内容是不会发生改变的,是HTML页面。以.html .htm等结尾

    ②动态网页

    会经过服务端脚本的执行,连接数据库进行数据处理等操作,先执行解析为静态页面。再由web服务器返回静态页面给浏览器端。 以.php等结尾

    2、PHP所在的位置及其作用

    ①如果访问的是静态html页面,由web服务器(Apache)直接返回

    ②如果访问的是PHP的动态页面,web服务器(Apache)会先加载PHP解析页面,处理相关数据操作。解析称为静态html页面。再由web服务器返回用户浏览器端

    ③在网站的页面访问中,一般会使用的网络协议是http或者https(http的加密协议、更加安全),http协议默认端口是80,Apache运行在80端口。

    四、PHP基本语法

    1、起始和结束标记语法

    在写PHP的时候,需要进行一个标记的声明。在此标记中,需要通过PHP进行解析。在此标记中的代码,都是PHP语法的代码。

    PHP代码文件,一般要求是以.php进行结尾的。

    语法规则:

    <?php
    PHP相关的代码
    ?>
    ①尾部结束标记是可以省略的
    
    • 以结束
    • PHP中每个代码行都必须以分号结束,分号是一种分隔符,用于把指令集区分出来。
    • 程序设计语言都是从上至下顺序执行。

    2、指令分隔符

    在每行代码结束之后,都以 ; 进行结束

    如果只有一行语句或者是最后一行语句,可以省略不写。但是建议每行都写。

    3、echo输出语句

    ​ echo语法是PHP中的一个输出结构。可以把想要在浏览器页面上显示的内容,通过它进行输出。

    4、PHP和HTML的关系

    混合开发方式:

    ①在html里混编PHP代码

    如果说想要在HTML中进行PHP代码的编写,需要把HTML页面的拓展名称,由HTML修改为.php。先解析PHP代码。

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>php</title>
    </head>
    <body>
      1
      我爱PHP
      <?php echo 'i love php'?>
    </body>
    </html>
    

    ②在PHP代码里输出HTML代码

    <?php
    echo '1<br />';
    echo '<h1>i love php</h1>';
    

    PHP与HTML的关系:

    • php只存在于服务器端,凡是我们通过浏览器看到的,都是HTML(CSS JS等客户端语言)
    • PHP在做网站中的作用就是按照我们的需求输出正确的HTML代码
    • 对于PHP而言,所有的HTML代码都是字符串

    5、注释方式

    ​ 注释一般是代码中的一些描述文字。用来说明代码的用途,及其简单的功能描述。

    ​ 良好的代码,一个优秀的程序员,应该有写注释的习惯。要养成编写注释说明的习惯。

    注释了的代码是不会被执行的。

    注释的方式:

    ①单行注释

    //需要注释的代码
    #需要注释的代码  类unix语法
    

    ②多行注释

    /*
    *需要代码或者说明的内容
    *
    *
    *
    */
    

    6、header响应头

    ​ header 可以告知浏览器以什么方式解析代码。可以用来解决中文乱码的情况。

    中文乱码现象:

    <?php
    echo '我爱PHP'; //浏览器访问这个页面会出现乱码    
    ?>
    

    解决方式:

    <?php
    //使用header响应头声明,告知浏览器以utf8的编码格式显示输出内容
    header('Content-Type:text/html;charset=utf8');
    echo '我爱PHP'; //浏览器访问这个页面会  我爱PHP    
    ?>
    

    7、变量的定义

    变量可以进行信息的存储,作为存储信息的一个容器。

    变量在代码运行和运算中,可以进行更改和变化。

    PHP中变量以$(通过键盘shift+4 dollar美元符号)

    命名规则:

    • 变量名必须以字母或下划线 "_" 开头

      • 正确:$abc123
      • 错误:$123abc
    • 变量名只能包含字母数字字符以及下划线

      • 正确:$abc_dfe
      • 错误: $!@#abc
    • 变量名不能包含空格。如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如 $my_string),或者以大写字母开头(比如 $myString)

      • 正确:$user_name
      • 错误:$user name
    • 关键字 $this 是不能够被使用的。系统保留字

    8、变量的数据类型

    ​ 在按照PHP的基本语法规则下,我们可以定义变量,变量有8种数据类型,变量和变量间是可以进行一些运算的。变量的值你可以直接赋值、赋给地址,也可以从URL或表单中接收到。

    PHP有8种数据类型:

    • 整型 Integer

    • 浮点型 Float

    • 布尔型 Boolean

    • 字符串 String

    • 数组 Array

    • 对象 Object

    • 资源 Resource

    • 空类型 NULL

    标量类型

    • int 整型

    • boolean 布尔型

    • string 字符串

    • float 浮点型

    复合类型

    • array 数组

    • object 对象

    特殊类型

    • resource 资源
    • 空 NULL

    问:如何查看某个变量的数据类型?

    答:可以通过PHP的var_dump语法。

    9、变量的访问范围

    当变量赋值之后,需要进行使用的时候,要注意其的使用范围。变量在此范围中,可以被使用到。其他范围使用不到。这个范围被称为”变量的作用域”。

    PHP中的变量与JS中的变量有很大的区别:

    • JS变量的访问范围

      • JS变量分为全局变量和局部变量
      • 在全局作用域中,可以访问全局变量
      • 在局部作用域中,可以访问局部作用域
      • 在局部作用域中可以访问全局变量
    • PHP变量的访问范围

    <?php
    $str = 'hello PHP';
    funcation sayhello(){
        echo $a; //是否可行?
    }
    sayhello();
    ?>
    

    解决方案:

    可以通过把变量成为全局变量的方式,进行访问使用。

    <?php
    $str = 'hello PHP';
    // echo $str;
    // 函数
    function sayhello()
    {
      global $str;
      // 是否可以使用到str
      echo $str;
    }
    // 调用函数
    sayhello();
    

    10、变量的赋值

    变量传值的方式:

    • 值传递

      • 当新的变量的值修改后,原变量的值不会被更改掉。
      <?php
      // 变量赋值
      $name = 'tom';
      $new_name = $name;
      echo $new_name;
      ?>
      
    • 引用传递

      • 会把变量对应的值的内存地址传过去,当变量的值被改变时,原变量的值也会被修改掉。
      <?php
      $a = 3;
      // 引用传值方式
      $b = &$a;
      // $b发生改变之后
      $b = 5;
      echo $b;  //$b 5
      echo '<hr>';
      // 问$a,现在等于几  5
      echo $a;
      

    11、单引号和双引号的使用区别

    ​ 在PHP当中可以既可以使用单引号字符串的声明,也可以使用双引号。但是单引号和双引号是存在一定的区别的。

    <?php
    // 输出hello php
    // 查看单引号和双引号的区别
    $str = 'hello';
    // 单引号
    echo '$str php';
    echo '<hr>';
    // 双引号
    echo "$str php";
    

    ​ 通过以上代码案例,可以知道,在Php中单引号中的变量时不会被解析,因为被认为是字符串。双引号中的变量会先被解析。

    ​ 在实际开发工作当中,如果不需要进行变量的解析,只是声明赋值一个字符串类型的话,应该使用单引号,效率会更高。

    单引号与双引号的区别

    在php中,可以通过单引号或双引号来声明String字符类型的数据,但是两者在解析变量时会略有不同:

    • 双引号中的变量是可以通过php解析器进行正常解析的。
    • 单引号中的变量是无法进行解析的,只会把变量当做普通的字符串直接输出

    12、常量的使用

    常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变。

    常量默认为大小写敏感。按照惯例常量标识符总是大写的。

    常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。

    常量不需要使用$符号。

    语法:

    define(‘大写的常量名称’,常量值);
    

    小案列:几何数学中,通过圆的半径计算面积。

    圆周率*圆周半径的平方

    圆周率是不变的,所以可以把它进行使用常量定义。

    <?php
    // 通过圆的半径计算面积
    // 常量的使用
    // 在计算过程中不需要进行改变,所以可以设定为常量
    define('PI', 3.14);
    // define('PI', 3.1415926);
    // 计算圆的面积
    echo PI * 5 * 5;
    

    13、运算符

    ①算术运算符

    +加

    -减

    *乘

    /整除

    %取余 除法取余数

    <?php
    $a = 10;
    $b = 5;
    // 加
    echo $a+$b;
    echo '<hr>';
    // 减
    echo $a-$b;
    echo '<hr>';
    // 乘
    echo $a*$b;
    echo '<hr>';
    // 整除
    echo $a/$b;
    echo '<hr>';
    // 求余
    echo $a%$b;
    

    ②自加和自减运算符

    比如:有一个变量$i

    $i++ 先运算,后自身加1操作

    ++$i 先自身加1操作,后运算

    $i-- 先运算,后自身减1操作

    --$i 先自身减1操作,后运算

    <?php
    $a = 5;
    // 先运算,后自加
    echo $a++;
    echo '<hr>';
    // 这里由于$a已经变为6
    // 先自加,后运算
    echo ++$a;
    

    ③比较运算符

    >大于

    >=大于等于

    < 小于

    <= 小于等于

    == 等于 值相等

    === 全等于 恒等于(值相同并且类型也相同)

    !== 恒不等于

    <?php
    // header响应头设置
    header('Content-Type:text/html;charset=utf8');
    // 比较运算符
    // 整型
    $a = 5;
    // 字符串类型
    $b = '5';
    // if($a > $b){
    //   echo '$a 大于$b';
    // }else{
    //   echo '$a 小于$b';
    // }
    if($a == $b){
      echo '$a和$b的值是相等的';
    }
    echo '<hr>';
    if($a === $b){
      echo '$a和$b的值和类型都是相等的';
    }
    

    ④逻辑运算符

    && 与 and 多个条件同时满足

    || 或 or 其中一个条件满足即可

    ! 取反 把条件的值进行反向操作

    ⑤字符串运算符(连接运算符)

    以‘.’进行字符串的拼接操作

    <?php
    // header
    header('Content-Type:text/html;charset=utf8');
    $a = 5;
    $b = 3;
    // 判断$a和$b是否同时大于4;
    // if($a > 4 && $b >4 ){
    //   echo '$a和$b都大于4';
    // }
    // if($a > 4 || $b >4 ){
    //   echo '$a和$b有大于4的';
    // }
    if(!$a > $b){
      echo '$a大于$b';
    }
    

    ⑥赋值运算符

    = += -= /= %=

    $a = 10; 把10赋值给$a变量

    <?php
    $str = 'hello';
    echo '$str PHP';
    echo '<hr>';
    // 字符串拼接方式
    echo $str.' PHP';
    

    14、运算符的优先级

    在PHP中会根据运算符的优先级进行运算操作,如果想要先执行,也可以使用()进行线执行操作。

    <?php
    // 运算符的优先级
    $a = 5;
    $b = 4;
    // 问结果是多少
    // ①5+4*5 = 25
    echo $a+$b*$a;
    echo '<hr>';
    // 括号里的优先运算
    echo ($a+$b)*$a;
    
    <?php
    // header响应头信息
    header('Content-Type:text/html;charset=utf8');
    // 运算优先级
    $a = 5;
    $b = 4;
    // ①$a--等于4
    // ②$b--等于3
    // ③判断之后的$a和$b是否相等
    // $a-- == $b--;
    // echo $a;
    // echo '<hr>';
    // echo $b;
    if(--$a == $b){
      echo '值相等';
    }
    

    15、选择结构

    ①if elseif else

    语法:

    if(判断条件){
    
    如果满足以上的判断条件,需要执行的代码操作
    
    }elseif(判断条件){
    
    需要执行代码操作
    
    }else{
    
    代码操作
    
    }
    
    <?php
    // header响应头
    header('Content-Type:text/html;charset=utf8');
    // 数字星期几
    $day = 3;
    if($day == 1){
      echo '星期一';
    }elseif($day == 2){
      echo '星期二';
    }elseif($day == 3){
      echo '星期三';
    }elseif($day == 4){
      echo '星期四';
    }elseif($day == 5){
      echo '星期五';
    }else{
      echo '周末';
    }
    

    ②switch

    语法:

    switch(条件[变量]){
    case: 等于的值
    需要执行的代码
    break;
    case:
    需要执行的代码
    break;
    defalut:
    }
    
    <?php
    // header响应头
    header('Content-Type:text/html;charset=utf8');
    // 数字星期几
    $day = 3;
    switch ($day) {
      case '1':
        echo '星期一';
        break;
      case '2':
        echo '星期二';
        break;
      case '3':
        echo '星期三';
        break;
      case '4':
        echo '星期四';
        break;
      case '5':
        echo '星期五';
        break;
      default:
        echo '周末';
        break;
    }
    

    问:if...elseif....else结构和switch结构的区别?**

    答:两种语法结构都是可以进行选择判断的。但是if结构可以判断条件的范围,也可以判断条件等于固定的值。switch只能是固定的值。

    16、循环结构

    循环:重复的做一件事情。

    比如说,想要输出1-9的数字。

    之前的写法:

    echo 1;

    echo 2;

    echo 3;

    .....

    ①for结构

    语法:

    for($i=起始值;$i<循环条件止;$i++){
    执行的代码
    }
    
    <?php
    // for循环
    // for ($i=1; $i < 10; $i++) {
    for ($i=1; $i <=9; $i++) {
      echo $i.'<hr>';
    }
    

    ②while结构

    语法:

    注意定义循环条件的起始值
    while(循环条件){
    执行的代码
    }
    
    <?php
    // while循环
    // 定义while条件的起始值
    $i = 1;
    while ($i<= 9) {
      echo $i.'<hr>';
      // 执行一次进行+1操作;
      $i++;
    }
    

    ③do...while结构

    语法:

    do{
     执行的代码
    }
    while(判断条件);
    
    <?php
    // do...while循环
    $i = 1;
    // 先执行一次操作
    do{
      echo $i.'<hr>';
      // 执行之后给$i递增
      $i++;
      // 再会进行判断
    }while($i<=9);
    

    问:for循环和while循环的区别?

    答:for结构适合知道循环的据此次数,while可以未知循环次数

    问:while循环和do...while的区别?

    答:while循环先判断后执行,do...while循环会先执行一次,再进行判断

    17、循环中的两大关键字

    ①continue 中断当前次循环,继续执行之后的循环,在循环结构中用来跳过本次循环中剩余的代码并在条件求值为真时,开始执行下一次循环

    <?php
    // 循环输出1-9,不输出6
    for ($i=1; $i <=9 ; $i++) {
      // 判断等于则停止此次循环
      // 继续之后的循环
      if($i == 6){
       	continue;
      }
      echo $i.'<hr>';
    }
    

    ②break 结束当前for、while、do-while 或者switch结构的执行,跳出整个循环

    <?php
    // 循环输出1-9,不输出6
    for ($i=1; $i <=9 ; $i++) {
      // 判断等于则停止此次循环
      // 继续之后的循环
      if($i == 6){
        break;
      }
      echo $i.'<hr>';
    }
    

    五、PHP中的数组

    1、数组的作用

    想要使用变量存储一个人的相关信息。

    姓名、年龄、职位

    <?php
     //使用变量
     //存储一个人的信息
     //姓名,年龄,职位
    $name = 'xiaoming';
    $age = 24;
    $job = 'PHP'
    

    以上结构具有一定的关联关系,如果简单使用变量存储,不是太合适。可以使用数组的方式。

    一组具有关系的数据。

    2、数组的定义

    PHP 中的数组是一个有序图。图是一种把 values 映射到 keys 的类型。(key=>value)

    数组的本质是储存、管理和操作一组变量。数组也是PHP提供的8种数据类型中的一种,属于复合数据类型。

    数组的作用和特点:

    ①可以把不同类型的变量放在同一数组

    ②数组的容量可以根据元素的个数的增减自动调整

    在PHP中 定义数组非常灵活,在创建数组时不需要指定数组的大小,不需要在使用数组前先声明,可以在同一个数组中存储任何类型的数据

    自定义数组可以使用以下两种方法:

    • 直接为数组元素赋值即可声明数组
    • 使用array()函数声明数组

    使用上面两种方法声明数组时,不仅可以指定元素的值,也可以指定元素的下标。

    语法:

    ①索引数组

    array(元素,元素,元素)
    

    存储1-5的一组数字到数组中

    <?php
    $array = array(1,2,3,4,5);
    var_dump($array);
    ?>
    

    ②关联数组

    array(key=>value,key=>value,key=>value)
    

    key不是数字

    3、访问数组元素

    ①索引数组

    访问元素通过数组的下标访问,注意下标从0开始

    <?php
    $array = array(1,2,3,4,5);
    var_dump($array);
    echo '<hr>';
    //输出数组的元素
    //数组元素的下标从0开始
    echo $array[2];  //输出3
    ?>
    

    ②关联数组

    访问元素通过数组的key进行访问

    <?php
    //关联数组
    $person = array(
    'name' => 'xiaoming',
    'age' =>  23,
    'job' => 'PHP'
    );
    var_dump($person);
    echo '<hr>';
    echo $person['name'];
    //输出 xiaoming
    

    4、遍历输出数组

    ①通过for循环比遍历

    <?php
    $array = array(1,2,3,4,5);
    var_dump($array);
    echo '<hr>';
    //输出数组的元素
    //数组元素的下标从0开始
    echo $array[2];
    echo '<hr>';
    //遍历索引数组
    for ($i=0;$i < 5;$i++){
        echo $array[$i].'<br />';
    }
    ?>
    

    ②foreach遍历

    一般情况下,推荐大家更多的使用foreach遍历数组。foreach是经过系统优化的,效率更加高一些。

    <?php
    //关联数组
    $person = array(
    'name' => 'xiaoming',
    'age' =>  23,
    'job' => 'PHP'
    );
    var_dump($person);
    echo '<hr>';
    echo $person['name'];
    echo '<hr>';
    //foreach遍历
    foreach ($person as $key => $value){
        echo $key.':'.$value.'<br />';
    }
    echo '<hr>'
    foreach ($person as $value){
        echo $value.'<br />';
    }
    
    坚持这种真诚,那么总归能遇到良人。
  • 相关阅读:
    决策树
    Caffe:深入分析(怎么训练)
    Caffe深度学习计算框架
    Caffe参数交换源码分析
    Net的网络层的构建(源码分析)
    FineTuning机制的分析
    Caffe::Snapshot的运行过程
    AdaBoost算法
    SVM支持向量机
    SMO序列最小最优化算法
  • 原文地址:https://www.cnblogs.com/jiaxiaozia/p/12323487.html
Copyright © 2011-2022 走看看