博客列表 >php基础第二天不断补充中

php基础第二天不断补充中

手机用户1620888567
手机用户1620888567原创
2023年03月03日 15:03:24643浏览

一、 PHP简介

认识PHP

  1. PHP Hypertext Preprecessor 超文本预处理器 可以嵌入到html代码中的

  2. PHP通用开源动态脚本语言,运行在服务端,适合高效快捷的进行web开发

  3. 通常用于创建动态生成的网页,支持常用的数据库 MySql, mariaDB ,Oracle, MongoDB

php发展史

  1. PHP Personal Home Page 1994 Perl Rasmus Lerdorf 来统计个人网站访问量的程序,C重写后,1995 php1 php2 加入了对mysql

  2. php5 2004-7 引入了面向对象编程 5.4 trait 5.6

  3. php7 2015-12 性能是 php5.6提高了2倍
    php7.4 提供了pre-loading预加载机制,实现了部分程序的常驻内存

4 2020-11 PHP8.0问世 高效的JIT just-in-time(即使编译)运算支持,PHP 已经应用到 websocket服务,高性能web,物联网,即时通讯,游戏,微服务等非web领域的系统开发

PHP 工作运行原理

image.png

二、 PHP语法第一课

PHP include request区别

(1)、include 遇到错误还继续,非常适合模版

(2)、request遇到错误就停止

PHP 函数不区分大小写、php变量大小敏感

索引数组

关联数组

image.png

二维数组遍历

for

image.png

foreach

image.png

image.png

list()数组找那个的值赋给一组变量

image.png

extract

image.png

php 变量

1. 数据类型转换

转换方式 函数
临时转换 (int),(string),(array),(object)…
自动转换 根据操作符对操作数的类型要求进行
强制转换 settype()

PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:

(int)、(integer):转换成整形

(float)、(double)、(real):转换成浮点型

(string):转换成字符串

(bool)、(boolean):转换成布尔类型

(array):转换成数组

(object):转换成对象

第一种转换方式: (int) (bool) (float) (string) (array) (object)

$num1=3.14;

$num2=(int)$num1;

var_dump($num1); //输出float(3.14)

var_dump($num2); //输出int(3)

?>

第二种转换方式: intval() floatval() strval()

$str=”123.9abc”;

$int=intval($str); //转换后数值:123

$float=floatval($str); //转换后数值:123.9

$str=strval($float); //转换后字符串:”123.9”

?>

第三种转换方式: settype();

$num4=12.8;

$flg=settype($num4,”int”);

var_dump($flg); //输出bool(true)

var_dump($num4); //输出int(12)

?>

2. 类型检测

转换方式 函数
标量 is_int(),is_string(),is_bool()…
复合 is_array(),is_object()
特殊 is_null(),is_resource()

PHP有很多资源类型:数据库连接、结果、图像、PDF等

is_resource():判断一个变量是否是一个资源类型

null讲解

image.png

@var_dump 有错误可以忽略不在页面显示

null 类型不等于下面任何:

false(布尔值) 0(数字类型) ‘’(字符串)

如何能获得null 三种方法

1、直接赋值$var =nul
2、unset($fp)
3、var_dump($emp) $emp 不存在

3. 变量命名

  • 仅允许使用: 英文字母(a-z,A-Z),数字(0-9),下划线(_)或他们的组合
  • 不允许使用数字开头
  • 必须使用”$”美元符为前缀
  • 严格区分大小写
  • 驼峰命名法

4. 常量

  • define(): 函数
  • const: 关键字
    1. 固定的值(圆周率), 常量不能重新被定义 或者取消定义
    1. 常量的命名前不能加 $
    1. 常量推荐全部大写,多个单词之间用下划线连接_
    1. 变量不属于全局成员, 常量、类、接口、函数属于全局成员 不受作用域限制
  • 5、类常量只能用const定义

常量类型
系统常量 魔术常量 DIR

  1. const APP_PATH = '/phpEnv/www/chloe.io/0302';
  2. echo APP_PATH;
  3. define('NATION', '中国');
  4. echo NATION;
  5. printf('国籍:%s', NATION);
  6. class User
  7. {
  8. //类常量只能用const定义
  9. const APP_PATH = '/phpEnv/www/chloe.io/0302';
  10. }
  11. // 常量必须初始化赋值
  12. $height;
  13. const HEIGHT = '183cm';
  14. ob_clean();
  15. // 系统常量
  16. // print_r(get_defined_constants(true));
  17. // 魔术常量
  18. echo __FILE__; //当前执行PHP脚本的完整路径和文件名, 绝对路径
  19. echo dirname(__FILE__); //当前执行PHP脚本的完整路径
  20. echo __DIR__;//当前执行PHP脚本的完整路径

5. 全局变量 无法在函数内部直接调用

image.png
//系统预定义变量
// 超全局变量: 数组,任何地方都可以访问,不受作用域限制
// $GLOBALS: 引用全局作用域中可用的全部变量
// $_SERVER: 服务器和执行环境信息
// $_GET :通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组
// $_POST:当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
// $_FILES:通过 HTTP POST 方式上传到当前脚本的项目的数组
// $_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量的数组
// $_SESSION:当前脚本可用 SESSION 变量的数组
// $_REQUEST: 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
// $_ENV: 通过环境方式传递给当前脚本的变量的数组

流程控制

1. 单一条件分支结构

if (1 == 1) {
echo 111;
}

2.双向条件分支结构 if…else

if(条件表达式)
{

  1. #满足条件执行的代码块

} else{

不满足条件执行的代码块

}

3. 多向条件分支结构

  1. $age = 85;
  2. $gender = '女';
  3. if ($gender == '女' && $age < 55) :
  4. echo "您好女士,距离您退休还有" . (55 - $age) . "年<br>";
  5. elseif ($gender == '女' && $age > 55) :
  6. echo "您好女士,您已经退休" . ($age - 55) . "年了<br>";
  7. elseif ($gender == '男' && $age < 60) :
  8. echo "先生您好,距离您退休还有" . (60 - $age) . "年<br>";
  9. elseif ($gender == '男' && $age > 60) :
  10. echo "先生您好 ,您已经退休" . ($age - 60) . "年了<br>";
  11. else :
  12. echo '很抱歉,您输入的信息不正确';
  13. endif;
  14. ob_clean();
  15. $d = date("w"); //0-6
  16. switch ($d):
  17. case 1:
  18. echo '今天是工作日星期一';
  19. break;
  20. case 2:
  21. echo '今天是工作日星期二';
  22. break;
  23. case 3:
  24. echo '今天是工作日星期三';
  25. break;
  26. case 4:
  27. echo '今天是工作日星期四';
  28. break;
  29. case 5:
  30. echo '今天是工作日星期五';
  31. break;
  32. default:
  33. echo "今天休息!";
  34. endswitch;
  35. // break 退出当前循环 continue 跳过此次循环,进入下一轮循环

php 模版

  1. $nav = '';
  2. for ($i = 0; $i < count($navs); $i++) {
  3. $nav .= "<a href='{$navs[$i]['url']}' style='padding: 0 15px' >{$navs[$i]['name']}</a>";
  4. }

js 模版

  1. // 商品信息模板
  2. const tr = `
  3. <tr>
  4. <td><input type="checkbox" name="" class="check" checked /></td>
  5. <td>${item.id}</td>
  6. <td>${item.name}</td>
  7. <td>${item.unit}</td>
  8. <td class="price">${item.price}</td>
  9. <td><input type="number" name="" value="${item.num}" min="1"></td>
  10. <td class="money">${item.money}</td>
  11. </tr>
  12. `

三、 PHP项目实例

image.png

目录结构

(1)data存储是数组

(2)template\public存储是网页头、网页底公共模版,都是用include 引用

(3)static存储js css等

template\public 头部底部模板如下

  1. 头部模板
  2. <!DOCTYPE html>
  3. <html lang="zh-CN">
  4. <head>
  5. <?
  6. $arr = require 'data/data.php';
  7. $navs = require 'data/nav.php';
  8. ?>
  9. <meta charset="UTF-8" />
  10. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  11. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  12. <meta name="keywords" content="<?= $arr['keywords'] ?>" />
  13. <meta name="description" content="<?= $arr['des'] ?>" />
  14. <link rel="stylesheet" href="static/css/style.css" />
  15. <title><?= $arr['title'] ?></title>
  16. </head>
  17. <body>
  18. <!-- 页眉 -->
  19. <!-- 修改php.ini open_short_tag On-->
  20. <header>
  21. <nav>
  22. <a href="index.php">首页</a>
  23. <? foreach ($navs as $k => $v) : ?>
  24. <a href="news.php"><?= $v['name'] ?></a>
  25. <? endforeach; ?>
  26. </nav>
  27. </header>
  1. <!-- 页脚 -->
  2. <footer>
  3. <div>php中文网&copy;版权所有(2022-2025)</div>
  4. </footer>
  5. </body>
  6. </html>

data存储是数组

  1. return [
  2. ["id" => 1, 'name' => '新闻'],
  3. ["id" => 2, 'name' => '产品'],
  4. ["id" => 3, 'name' => '联系'],
  5. ["id" => 4, 'name' => '登录'],
  6. ];
  7. return array("keywords" => "新闻,产品,合肥", "des" => "专业生产中高档办公家具,行业畅销20年", "title" => "首頁");

首页如下

  1. <!-- 引入页眉 -->
  2. <?php include 'template/public/header.php' ?>
  3. <!-- 主体 -->
  4. <main>
  5. <!-- 新闻列表 -->
  6. <div class="news">
  7. <h3>新闻列表</h3>
  8. <div class="list">
  9. <a href="">切实做好高风险岗位从业人员疫情防控。</a>
  10. <a href="">切实做好高风险岗位从业人员疫情防控。</a>
  11. <a href="">切实做好高风险岗位从业人员疫情防控。</a>
  12. <a href="">切实做好高风险岗位从业人员疫情防控。</a>
  13. <a href="">切实做好高风险岗位从业人员疫情防控。</a>
  14. </div>
  15. </div>
  16. <!-- 产品列表 -->
  17. <div class="items">
  18. <h3>产品列表</h3>
  19. <div class="list">
  20. <div class="item">
  21. <img src="static/images/item1.jpeg" alt="" />
  22. <a href="">最新产品1</a>
  23. </div>
  24. <div class="item">
  25. <img src="static/images/item2.jpeg" alt="" />
  26. <a href="">最新产品2</a>
  27. </div>
  28. <div class="item">
  29. <a href=""><img src="static/images/item3.jpeg" alt="" /></a>
  30. <a href="">最新产品3</a>
  31. </div>
  32. <div class="item">
  33. <img src="static/images/item4.jpeg" alt="" />
  34. <a href="">最新产品4</a>
  35. </div>
  36. </div>
  37. </div>
  38. </main>
  39. <!-- 引入页脚 -->
  40. <?php include 'template/public/footer.php' ?>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议