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 />';
}
坚持这种真诚,那么总归能遇到良人。
原文地址:https://www.cnblogs.com/jiaxiaozia/p/12323487.html