php的基本语句

发布于:2022-10-27 ⋅ 阅读:(353) ⋅ 点赞:(0)

## PHP初识

###  为什么学php?

     通过live serve 起的假的服务不能做逻辑处理   所以为了熟悉前后端交互 业务流程   学习php

###  什么是php?

     PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

     PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。

     PHP 脚本在服务器上执行

###  PHP 文件是什么?

    PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码

    PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器

    PHP 文件的默认文件扩展名是 ".php"

### PHP 能做什么?

    PHP 可以生成动态页面内容

    PHP 可以创建、打开、读取、写入、关闭服务器上的文件

    PHP 可以收集表单数据

    PHP 可以发送和接收 cookies

    PHP 可以添加、删除、修改您的数据库中的数据

    PHP 可以限制用户访问您的网站上的一些页面

    PHP 可以加密数据

###  安装  phpstudy  包含两个内容

对于初学者建议使用集成的服务器组件,它已经包含了 PHP、Apache、Mysql 等服务,免去了开发人员将时间花费在繁琐的配置环境过程;

- Windows 系统可以使用phpStudy

- XAMPP

    XAMPP 支持 Mac OS 和 Windows 系统,下载地址:https://www.apachefriends.org/zh_cn/index.html。

 服务器  Apache  会在本地起一个本地服务    http://localhost/  (以后启动phpstudy  必须通过http://localhost/   来访问  绝对不能通过live serve)

###  学习phpstudy 的注意事项

```

1. 每天打开电脑 第一件事  启动  phpstudy

2. 以后启动运行phpstudy   必须通过http://localhost/   来访问  绝对不能通过live serve

3. http://localhost/  起的服务的根目录  在  WWW (点击小图标  鼠标右键 网站根目录)

4. 以后我们写的所有php文件  必须放在 WWW 中

```

## PHP基础语法

###  怎增使用php

PHP 脚本可以放在文档中的任何位置。

PHP 脚本以 <?php 开始,以 ?> 结束:

```

<?php

// PHP 代码

?>

```

注意:

- php的语法比较严格  语句结束之后 一定要加";" 否则会报错;

- php 语法出错  会直接将错误输出到页面中(显示错误的 行号)

- PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器

###  php的输出语法

1. echo     可以输出一个或多个字符串(多个字符串之间用逗号分隔);

2. print    只允许输出一个字符串;

3. print_r()   打印数组和对象;

```

<?php

    echo "hello","world","Today","is","Thursday","<br>";

    print "你好php";

    print_r([1,2,3,4])

?>

```

###  php的注释

1. 单行注释 (//)

2. 多行注释 (/**/)

示例:

```

<?php

    // 这是单行注释

    /*

        这是php多行注释

    */

?>

```


 

### php变量

#### PHP 变量规则:

    PHP 变量规则:

    变量以 $ 符号开始,后面跟着变量的名称

    变量名必须以字母或者下划线字符开始

    变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )

    变量名不能包含空格

    变量名是区分大小写的($y 和 $Y 是两个不同的变量)

#### 创建(声明)PHP 变量:

PHP 没有声明变量的命令,变量在您第一次赋值给它的时候被创建:

```

<?php

    $a =100;

    $str = "hello world";

    $bool = true;

?>

```

注:PHP 也是一门弱类型语言(会根据变量的值,自动把变量转换为正确的数据类型)


 

#### PHP 变量作用域

- global   (全局作用域);

- local    (局部作用域);

- parameter  (参数作用域);

1. 在函数中声明的变量是局部变量,在函数外声明的变量是全局变量(全局变量和局部变量不会相互影响);

```

    <?php

        // 全局变量

        $x = 5;

        $y = 6;

        $z = $x +  $y;

        echo $z;

        echo "<br>";


 

        // 在函数内声明的变量是局部变量

        function fn(){

            $x = 10;

            $y = 20;

            return $x+$y;

        }

        $result = fn();

        echo $result;

    ?>

```

那么,如何将函数内的局部变量改为全局变量;

-  通过global 关键词  允许局部变量 访问全局变量

-  借助超级全局变量 $GLOBALS  (类似js中的window) 访问全局变量

a. 通过global 关键词  允许局部变量 访问全局变量

```

   <?php

    $x = 5;

    function fn(){

        global $x; //   通过global 关键词 可以允许$x 访问全局的$x

        $x = 10;

    }

    fn();

    echo  $x;

   

   ?>

```

b.借助超级全局变量 $GLOBALS  (类似js中的window) 访问全局变量

注:PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量

```

<?php

    $x = 5;

   function fn(){

      $GLOBALS["x"] = 10;  //

   }

   fn();

   echo  $x;

?>

```


 

3. 参数作用域(形式参数也是局部变量)

```

<?php

    $a = 10;

    $b = 20;

    function fn($a,$b){

        $a = 100;

        $b = 200;

        echo $a."|".$b."<br>";

    }

    fn(100,200);

    echo $a."|".$b;

?>

```

### php常量

    常量是全局的

    常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。

    定义方法:

    1. 定义常量const

    2. define(name,value,case_insensitive)

     name  常量名

    value  常量值

    case_insensitive   大小写是否不敏感   true=>不敏感(不区分大小写) false =>区分大小写

```

    <?php

        const a = 100;

        echo a;


 

       

        define("a",100 , false);

        echo a."<br>";

        echo A;

   

    ?>

```

### PHP数据类型

1. php基本数据类型

String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值);

注:PHP var_dump() 函数返回变量的数据类型和值;

除此之外还有 is_string(),is_int(),is_float(),is_bool(),is_null(),is_array()

```

<?php

    // 字符串

    $str = "hello哈哈";

    var_dump($str);

    echo is_string($str);

    // 整型

    $int = 100;

    var_dump($int);

    echo is_int($int);

    // 浮点型

    $float = 100.50;

    var_dump($float);

    echo is_float($float);

    // 布尔

    $bool = true;

    var_dump($bool);

    echo is_bool($bool);

   

    // null

    $n = null;

    var_dump($n);

    echo is_null($n);


 

    // 数组(一维数组)

    $arr = array(1,2,3,4);

    // var_dump($arr);

    print_r($arr);

    echo is_array($arr);

?>

```

### php运算符

    1. 算术运算符

    2. 关系运算符

    3. 逻辑运算符

    4. 赋值运算符

    5. 三元运算符

    6. 并置运算符(.)

### php选择

1. if语句

```

if( 条件1 ){

}else if( 条件2 ){

}else{

}

```

switch语句

```

switch( 数据1 ){

    case 数据2:

        break;

    default:    

}

```

### php 循环

1. for

```

for(初始值; 条件; 增量){}

```

2. foreach

```

foreach( $array as $value ){}

```

3. while

```

while(条件){}

```

4. do while

```

do{ }while(条件)

```


 

### php字符串拼接之 并置运算符

字符串拼接方式:

1.  借助 并置运算符(.   作用类似js中的+)

```

    $str = $a." ".$b;

    echo $str;

​````

2.  可以直接在字符串中拼接变量(此方法仅适用于"" 的字符串 ''不行)

```

    $str = "$a,$b";   类似ES6字符串模板拼接

    echo $str;

```

3.  对于数组类型的取值拼接 如果需要多注意(将对应取值使用 {} 包裹起来)

```

    $str = $GLOBALS["a"].",".$GLOBALS["b"];

    echo $str;

    $str="{$GLOBALS["a"]},{$GLOBALS["b"]}";

    echo $str;

```

### php字符串的方法

```

    strlen() 函数返回字符串的长度(字节数)。

    $str = "hello world!哈哈";

    $len = strlen($str);

    echo $len;


 

    strpos() 函数  查找某个或某段字符第一次出现的位置  能查到返回对应的下标  查不到 返回false

    $str = "good good study , day day up";

    $index = strpos($str,"day");

    echo $index;


 

    explode()  用特定的字符 将字符串切割为数组  (类似split)

    $str = "good good study , day day up";

    $arr = explode(" ",$str);

    print_r($arr);


 

    implode()  用特定的字符 将数组拼接为字符串  (类似join)

    join()     implode() 的别名。

    $arr = array("good","good","study",",","day","day","up");

    // print_r($arr);

    // $str = implode(" ",$arr);

    $str = join(" ",$arr);

    echo $str;


 

    str_ireplace()   用新的字符串替换旧的字符串(忽略大小写)

    str_replace()   用新的字符串替换旧的字符串(不忽略大小写)

    $str = "good good study , day day up";

    $newStr = str_replace("day","money",$str);

    echo $newStr;

```

### php数组

在 PHP 中,有三种类型的数组:

- 数值数组 - 带有数字 ID 键的数组;

- 关联数组 - 带有指定的键的数组,每个键关联一个值;

- 多维数组 - 包含一个或多个数组的数组;


 

1. 数值数组

```

   // 定义数组

    $arr = array('a', 'b', 'c');    

    // 数量

    $arrlength = count( $arr);    

   

    // 结构中显示键值

    print_r($arr);

   

    //遍历数组

    for($x=0;$x<$arrlength;$x++){

        echo $cars[$x];

        echo "<br>";

    }

```

2. 关联数组

```

    // 关联数两种创建方式

    //1.

    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

   

    //2.

    $age = array();

    $age['Peter']="35";

    $age['Ben']="37";

    $age['Joe']="43";


 

    print_r($array); // 结构中显示键值

   

    //遍历关联数组

    foreach($age as $x=>$x_value){   // $array  as $key=>$val

        echo "Key=" . $x . ", Value=" . $x_value;

        echo "<br>";

    }

```

3. 多维数组

```

    $arr = array(

        array(

            "goodsId"=>"A001",

            "goodsName"=>"Redmi K30",

            "goodsMsg"=>"120Hz流速屏,全速热爱",

            "goodsImg"=>"https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/2c16238f786e4f93bdb175d7bf21aa47.jpg?thumb=1&w=250&h=250&f=webp&q=90",

            "goodsPrice"=>1559,

            "buyNum"=>1

        ),

        array(

            "goodsId"=>"A002",

            "goodsName"=>"Redmi K30",

            "goodsMsg"=>"120Hz流速屏,全速热爱",

            "goodsImg"=>"https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/2c16238f786e4f93bdb175d7bf21aa47.jpg?thumb=1&w=250&h=250&f=webp&q=90",

            "goodsPrice"=>1559,

            "buyNum"=>1

        ),

        array(

            "goodsId"=>"A003",

            "goodsName"=>"Redmi K30",

            "goodsMsg"=>"120Hz流速屏,全速热爱",

            "goodsImg"=>"https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/2c16238f786e4f93bdb175d7bf21aa47.jpg?thumb=1&w=250&h=250&f=webp&q=90",

            "goodsPrice"=>1559,

            "buyNum"=>1

        ),

        array(

            "goodsId"=>"A004",

            "goodsName"=>"Redmi K30",

            "goodsMsg"=>"120Hz流速屏,全速热爱",

            "goodsImg"=>"https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/2c16238f786e4f93bdb175d7bf21aa47.jpg?thumb=1&w=250&h=250&f=webp&q=90",

            "goodsPrice"=>1559,

            "buyNum"=>1

        ),

        array(

            "goodsId"=>"A005",

            "goodsName"=>"Redmi K30",

            "goodsMsg"=>"120Hz流速屏,全速热爱",

            "goodsImg"=>"https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/2c16238f786e4f93bdb175d7bf21aa47.jpg?thumb=1&w=250&h=250&f=webp&q=90",

            "goodsPrice"=>1559,

            "buyNum"=>1

        ),

    );

```

### JSON

```

    // json_decode() JSON字符串转为JSON对象

    $str = '{"a":"你好", "b":"hello123"}';

    $obj = json_decode($str);

    var_dump($obj);


 

    // json_encode() JSON对象转为JSON字符串

    $obj = array(

        "a"=>"你好",

        "b"=>"hello123"

    );

    $str2 = json_encode($obj, JSON_UNESCAPED_UNICODE);

    echo $str2;

```

### PHP数组的方法

#### 数组头尾新增和删除

    array_unshift();  头部新增

    array_push();     尾部新增

   

    array_shift()   头部删除

    array_pop()     尾部删除



 

```

    $arr = array("x","y","z");

    array_unshift($arr,1);

    array_push($arr,4);

   

    print_r($arr);

   

    array_shift($arr);

    array_pop($arr);

    print_r($arr);

```


 

#### 数组增删改

    array_splice()   任意位置增删改

```

    $arr = array("x","y","z");

    array_splice($arr,1,1);

    array_splice($arr,1,0,"hello");

    array_splice($arr,1,1,"hello");

    print_r($arr);

```

#### 数组裁切

    array_slice(startIndex,endIndex);  [startIndex,endIndex]

```

    $arr = array("x","y","z");

    $newList = array_slice($arr,1,1);

    print_r($newList);

```

#### 数组反转

    array_reverse();  

```

    $arr = array("x","y","z");

    array_reverse($arr);

    print_r($arr)

```


 

#### 数组转字符串

    join()/implode()   数组转字符串 (注 join()     implode() 的别名)

```

    $arr = array("x","y","z");

    $str = join($arr,"");

    $str = implode($arr,"");

    echo $str;

```

#### 数组中是否存在某元素

    in_array(item,$arr);   // 存在返回true  不存在返回false

```

    $arr = array("x","y","z");

    $res = in_array(1,$arr);

    echo $res;

```


 

#### 数组排序;

a.普通数组(数值数组)

    sort() - 对数组进行升序排列

   

    rsort() - 对数组进行降序排列

```

    //纯数字排序

    $list = array(4,6,2,22,11);

    sort($list);

    // rsort($list);

    print_r($list);

   

    //非纯数字排序

    $cars=array("Volvo","BMW","Toyota");

    sort($cars);

    print_r($cars);

```



 

b. 关联数组;

    ksort() - 根据关联数组的键,对数组进行升序排列;

    krsort() - 根据关联数组的键,对数组进行降序排列;

   

    asort() - 根据关联数组的值,对数组进行升序排列;

    arsort() - 根据关联数组的值,对数组进行降序排列;

```

   $list=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

   ksort($list);

   // krsort($list);

   // asort($list);

   // arsort($list);

   print_r($list);

```


 

###  超级全局变量

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用;

PHP 超级全局变量列表:

- $GLOBALS

- $_SERVER

- $_REQUEST

- $_POST

- $_GET


 

#### PHP $GLOBALS

$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。

$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

```

    $a = 100;

    $b = 200;

    echo $$GLOBALS["a"] + $GLOBALS["b"];

```

#### PHP $_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

|属性|描述|

|---|---|

|$_SERVER['SERVER_ADDR']|当前运行脚本所在的服务器的 IP 地址。|

|$_SERVER['SERVER_NAME']|当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定|

|$_SERVER['SERVER_PROTOCOL']|请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。|

|$_SERVER['REQUEST_METHOD'] |访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。|

|$_SERVER['REQUEST_TIME']|  请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)|

|$_SERVER['QUERY_STRING']|  query string(查询字符串),如果有的话,通过它进行页面访问。|

|$_SERVER['REMOTE_ADDR']|   浏览当前页面的用户的 IP 地址。|

|$_SERVER['REMOTE_HOST']|   浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。|

|$_SERVER['REMOTE_PORT']|   用户机器上连接到 Web 服务器所使用的端口号。|

```

    |属性|描述|

    |$_SERVER['SERVER_ADDR']    |当前运行脚本所在的服务器的 IP 地址。|

    |$_SERVER['SERVER_NAME']    |当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定|

    |$_SERVER['SERVER_PROTOCOL']|请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。|

    |$_SERVER['REQUEST_METHOD'] |访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。|

    |$_SERVER['REQUEST_TIME']   |请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)|

    |$_SERVER['QUERY_STRING']   |query string(查询字符串),如果有的话,通过它进行页面访问。|

    |$_SERVER['REMOTE_ADDR']    |浏览当前页面的用户的 IP 地址。|

    |$_SERVER['REMOTE_PORT']    |用户机器上连接到 Web 服务器所使用的端口号。|

```

```

    @header("content-type:text/html;charset=utf-8");

   

    echo "服务器地址:"."{$_SERVER['SERVER_ADDR']}<br>";

    echo "服务器的主机名:"."{$_SERVER['SERVER_NAME']}<br>";

    echo "服务器的主机名的端口:"."{$_SERVER['SERVER_PORT']}<br>";

    echo "请求页面时通信协议的名称和版本:"."{$_SERVER['SERVER_PROTOCOL']}<br>";

   

    echo "访问页面使用的请求方法:"."{$_SERVER['REQUEST_METHOD']}<br>";

    echo "请求开始时的时间戳:"."{$_SERVER['REQUEST_TIME']}<br>";

   

    echo "query string(查询字符串):"."{$_SERVER['QUERY_STRING']}<br>";

   

    echo "浏览当前页面的用户的 IP 地址:"."{$_SERVER['REMOTE_ADDR']}<br>";

    echo "用户机器上连接到Web服务器所使用的端口号:"."{$_SERVER['REMOTE_PORT']}<br>";

```

#### PHP  $_GET

$_GET 广泛接收以GET方式传递过来的数据 (form传递/ajax传递),我们可以使用超级全局变量 $_GET 来对应字段(键名)的数据

html页面结构

```

    <form action="../php/get.php" method="GET">

        <div>

            <label for="user">用户名</label>

            <input name="user" type="text">

            <span class="user_span"></span>

        </div>

        <div>

            <label for="pwd">密码:</label>

            <input name="pwd" type="text">

            <span class="pwd_span"></span>

        </div>

        <div>

            <button id="logBtn">注册</button>

            <input type="reset">

        </div>

    </form>

```

get.php

```

    $user = $_GET["user"];  

    $pwd = $_GET["pwd"];

    echo $user."=>".$pwd;

```

#### PHP  $_POST

$_POST 广泛接收以POST方式传递过来的数据 (form传递/ajax传递),我们可以使用超级全局变量 $_POST 来对应字段(键名)的数据

html页面结构

```

    <form action="../php/post.php" method="POST">

        <div>

            <label for="user">用户名</label>

            <input name="user" type="text">

            <span class="user_span"></span>

        </div>

        <div>

            <label for="pwd">密码:</label>

            <input name="pwd" type="text">

            <span class="pwd_span"></span>

        </div>

        <div>

            <button id="logBtn">注册</button>

            <input type="reset">

        </div>

    </form>

```

post.php

```

    $user = $_POST["user"];  

    $pwd = $_POST["pwd"];

    echo $user."=>".$pwd;

```

#### PHP  $_REQUEST

$_REQUEST 广泛接收以(get/post都可以)方式传递过来的数据 (form传递/ajax传递),我们可以使用超级全局变量 $_REQUEST 来对应字段(键名)的数据

html页面结构

```

    <form action="../php/post.php" method="POST">

        <div>

            <label for="user">用户名</label>

            <input name="user" type="text">

            <span class="user_span"></span>

        </div>

        <div>

            <label for="pwd">密码:</label>

            <input name="pwd" type="text">

            <span class="pwd_span"></span>

        </div>

        <div>

            <button id="logBtn">注册</button>

            <input type="reset">

        </div>

    </form>

```

post.php

```

    $user = $_REQUEST["user"];  

    $pwd = $_REQUEST["pwd"];

    echo $user."=>".$pwd;

```












 

```

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到