PHP8 基础入门
PHP8 基础入门
1、PHP 是什么
PHP(Hypertext Preprocessor 超文本预处理器) 的简称,是一种被广泛应用的开源通用的服务器端脚本语言,适用于 Web 开发并可嵌入 HTML 中。
通用:指跨平台,如:Windows、Linux、MacOS
开源:意味着你可以轻松获取全部源代码,并进行定制或扩展
免费:意味着你不必为PHP花一分钱,哪怕用在商业项目中
服务器端:意味着你必须将它安装在服务器环境下才可以使用
脚本语言:解释型语言,按编写顺序执行。是指不需要编译,直接由解释器/虚拟机执行的编程语言
2、PHP 能做什么
可以快速动态的生成HTML页面
可以返回前端需要的各种类型的数据
可以高效安全的处理表单数据
可以安全的操作服务器上的文件
可以控制与客户端的会话( Cookie/Session )
可以对用户的行为进行授权控制
可以高效安全的操作各种类型的数据库
通过扩展,可以实现加密,压缩等其他功能
可以提供接口数据,包括:小程序、APP、等其他语言
3、php 程序执行流程
4、 学习 PHP 需要什么基础
不需要硬性基础,最好能了解以下知识
HTML:超文本标记语言
CSS:层叠样式表
JavaScript:前端脚本编程语言
5、PHP 版本
版本 发布日期 最终支持 相关更新及备注
1.0 1995-06-08 – 首次使用
2.0 1996-04-16 – 针对PHP 1.0的改进版,速度更快、体积更小,更容易产生动态网页。
3.0 1998-06-06 2000-10-20 Zeev Suraski和Andi Gutmans重写了底层
4.0 2000-05-22 2001-06-23 增加了Zend引擎
4.1 2001-12-10 2002-03-12 加入了superglobal(超全局的概念,即
G
E
T
、
_GET、
GET、_POST等)
4.2 2002-04-22 2002-09-06 默认禁用register_globals
4.3 2002-12-27 2005-03-31 引入了命令行界面CLI用来不用CGI
4.4 2005-07-11 2008-08-08 修复了一些致命错误
5.0 2004-07-13 2005-09-05 ZendⅡ引擎
5.1 2005-11-24 2006-08-24 引入了编译器来提高性能、增加了PDO作为访问数据库的接口
5.2 2006-11-02 2011-01-06 默认启用过滤器扩展
5.3 2009-06-30 2014-08-14 支持命名空间;使用XMLReader和XMLWriter增强XML支持;支持SOAP ,延迟静态绑定,跳转标签(有限的goto), 闭包,Native PHP archives。
5.4 2012-03-01 2015-09-03 支持Trait、简短数组表达式。移除了register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister(), magic_quotes以及session_is_registered()。加入了内建的Web服务器。增强了性能,减小内存使用量。
5.5 2013-06-20 2016-07-10 支持generators,用于异常处理的finally ,将OpCache(基于 Zend Optimizer+)加入官方发布中。
5.6 2014-08-28 2018-12-31 常数标量表达式、可变参数函数、参数拆包、新的求幂运算符、函数和常量的use语句的扩展、新的phpdbg调试器作为SAPI模块,以及其他更小的改进
6.x 未发布 – 取消掉的、从未正式发布的PHP版本。
7.0 2015-12-03 2018-12-03 Zend Engine 3 (性能提升并在Windows上支持 64-bit 整数),统一的变量语法, 基于抽象语法树编译过程。
7.1 2016-12-01 2019-12-01 void返回值类型,类常量,可见性修饰符
7.2 2017-11-30 2020-11-30 对象参数和返回类型提示、抽象方法重写等
7.3 2018-12-06 2021-12-06 PCRE2支持等
7.4 2019-11-28 2022-11-28 改进OpenSSL、弱引用等
8.0 2020年 S4或2021年 S1 2023年 S4或2024年 S1
安装PHP环境
一、环境介绍
1、web 环境
使用 PHP 需要先安装环境,安装环境比较麻烦,需要安装Web服务、PHP应用服务器、MySQL管理系统。
Web服务:apache 和 nginx
PHP:多版本
MySQL:多版本
2、环境集成包
因为多环境、多版本、多系统,集成包就出现了。集成包(phpStudy、Xampp、宝塔面板、wdcp面板),安装很方便。
3、phpStudio 软件下载
支持PHP8的集成包有:宝塔面板、phpStudio
下载:https://xcdn.php.cn/gongju/fuwuqi/phpStudio.zip
官网:https://www.php.cn/xiazai/gongju/1532
二、软件使用
打开软件
点击(网站)
添加(站点)
开启Apache和Mysql服务
修改hosts文件
127.0.0.1 www.php8.com
新建index.php文件
<?php
phpinfo();
访问www.php8.com
PHP基础语法
一、php 程序
PHP 文件的默认扩展名是 “.php”
PHP 文件中可以包含 html、CSS、JavaScript 代码
1、PHP 标记
开始标记 <?php 和 结束标记 ?> 中间写 PHP 代码
当解析一个文件时,PHP 会寻找起始和结束标记,也就是告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略。
<?php
?>
2、PHP 代码
<?php
echo 111,222
print 111
?>
备:上面代码报错,因为没有结束符
3、语句结束符 ;
<?php
echo 111,222;
print 111;
?>
4、注释
<?php
// 这是单行注释
/*
这是多行注释
注释后,在浏览器和网页源码中,是看不到的。
*/
?>
二、php 变量
1、声明变量
<?php
$a = 'php中文网原创视频:《天龙八部》公益php培训系列课程汇总!';
echo $a;
?>
2、赋值运算符
运算符 描述
= 赋值运算符
3、变量命名规则
开头不能用数字
中间不能有空格
<?php
# 下划线命名法
$new_title = 'php中文网原创视频:《天龙八部》公益php培训系列课程汇总!';
echo $new_title;
echo '<hr>';
# 小驼峰命名法
$newTitle = 'php中文网《玉女心经》公益PHP WEB培训系列课程汇总';
echo $newTitle;
echo '<hr>';
# 大驼峰命名法
$NewTitle = 'html5中submit是按钮么';
echo $NewTitle;
?>
实战1
一、html
静态页面下载
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>首页 - 欧阳克个人博客</title>
<meta name="keywords" content="博客,个人博客,欧阳克个人博客,PHP" />
<meta
name="description"
content="欧阳克是PHP中文网的讲师,愿意把知识分享给大家。"
/>
<link
rel="stylesheet"
id="twentytwelve-style-css"
href="/static/css/index.css"
type="text/css"
media="all"
/>
<style type="text/css" id="custom-background-css">
body.custom-background {
background-color: #e6e6e6;
}
input.btn-default:focus,
input.no-border:focus {
outline: none;
}
input.no-border {
font-size: 15px;
}
</style>
<script type="text/javascript" src="/static/js/jquery.js"></script>
<script type="text/javascript" src="/static/js/nav.js"></script>
</head>
<body class="home blog custom-background custom-font-enabled single-author">
<div id="page" class="hfeed site">
<header id="masthead" class="site-header" role="banner">
<hgroup>
<h1 class="site-title">
<a href="/" title="欧阳克个人博客" rel="home">欧阳克个人博客</a>
</h1>
<h2 class="site-description">
欧阳克是PHP中文网的讲师,愿意把知识分享给大家。
</h2>
</hgroup>
<nav id="site-navigation" class="main-navigation" role="navigation">
<ul class="nav-menu">
<li>
<a href="/index.html">首页</a>
</li>
<li>
<a href="/index.html?cate=1">服务器</a>
</li>
<li>
<a href="/index.html?cate=2">PHP</a>
</li>
<li>
<a href="/index.html?cate=3">前端</a>
</li>
<li>
<a href="/index.html?cate=4">Thinkphp</a>
</li>
<li>
<a href="/index.html?cate=5">Layui</a>
</li>
<li>
<a href="/index.html?cate=6">小程序</a>
</li>
</ul>
</nav>
</header>
<div id="main" class="wrapper">
<div id="primary" class="site-content">
<div id="content" role="main">
<article>
<header class="entry-header">
<h1 class="entry-title">
<a
href="/details.html"
title="php中文网原创视频:《天龙八部》公益php培训系列课程汇总!"
rel="bookmark"
>php中文网原创视频:《天龙八部》公益php培训系列课程汇总!</a
>
</h1>
</header>
<img
style="width:200px;height:100px;"
src="https://img.php.cn/upload/course/000/000/001/5d242759adb88970.jpg"
alt=""
/>
<div class="entry-content">
PHP中文网因专业的讲师水平和高效的视频质量,推出的各种视频课程系列一直以来都深受大家喜爱。特别是《天龙八部》系列、《独孤九贱》系列、《玉女心经》系列的原创课程在行业内更是具有强大的影响力,好评不断!为了让大家能更快速方便的寻找到相关教程资源,我们在这篇文章中特意将《天龙八部》系列课程整理出来供大家有针对性得学习!
</div>
<footer class="entry-meta">
发布于
<a
href="/index.html?time=2021-02-18"
title="2021-02-18"
rel="bookmark"
>
<time class="entry-date" datetime="2021-02-18"
>2021-02-18</time
> </a
>。 属于
<a
href="/index.html?cate=2"
title="查看 PHP中的全部文章"
rel="category"
>PHP</a
>
分类
</footer>
</article>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a
href="/details.html"
title="php中文网《玉女心经》公益PHP WEB培训系列课程汇总"
rel="bookmark"
>php中文网《玉女心经》公益PHP WEB培训系列课程汇总</a
>
</h1>
</header>
<img
style="width:200px;height:100px;"
src="https://img.php.cn/upload/course/000/126/153/5aa23f0ded921649.jpg"
alt=""
/>
<div class="entry-content">
php中文网近期推出的《独孤九贱》系列、《天龙八部》系列、《玉女心经》原创视频课程,好评如潮!由于《玉女心经》系列课程没有做成专题,所以大家找起来有点费劲,为了更好的服务广大php中文网粉丝们,特把课程整理汇总给大家!
</div>
<footer class="entry-meta">
发布于
<a
href="/index.html?time=2021-02-11"
title="2021-02-11"
rel="bookmark"
>
<time class="entry-date" datetime="2021-02-11"
>2021-02-11</time
> </a
>。 属于
<a
href="/index.html?cate=2"
title="查看 PHP中的全部文章"
rel="category"
>PHP</a
>
分类
</footer>
</article>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a
href="/details.html"
title="html5中submit是按钮么"
rel="bookmark"
>html5中submit是按钮么</a
>
</h1>
</header>
<div class="entry-content">
html5中submit是按钮,它是button的一个特例,它把提交这个动作自动集成了。submit会自动将表单的数据提交,使用submit时需要验证要加return
true或false。
</div>
<footer class="entry-meta">
发布于
<a
href="/index.html?time=2021-02-10"
title="2021-02-10"
rel="bookmark"
>
<time class="entry-date" datetime="2021-02-10"
>2021-02-10</time
> </a
>。 属于
<a
href="/index.html?cate=3"
title="查看 前端中的全部文章"
rel="category"
>前端</a
>
分类
</footer>
</article>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a
href="/details.html"
title="css如何去除下划线"
rel="bookmark"
>css如何去除下划线</a
>
</h1>
</header>
<div class="entry-content">
css去除下划线的方法:首先创建一个HTML示例文件;然后在body中定义一个a标签;最后通过css属性为“a{text-decoration:none}”去除下划线即可。
</div>
<footer class="entry-meta">
发布于
<a
href="/index.html?time=2021-02-01"
title="2021-02-01"
rel="bookmark"
>
<time class="entry-date" datetime="2021-02-01"
>2021-02-01</time
> </a
>。 属于
<a
href="/index.html?cate=3"
title="查看 前端中的全部文章"
rel="category"
>前端</a
>
分类
</footer>
</article>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a
href="/details.html"
title="linux如何查看进程"
rel="bookmark"
>linux如何查看进程</a
>
</h1>
</header>
<div class="entry-content">
linux查看进程的方法:1、ps命令,查看静态的进程统计信息;2、top命令,查看进程动态信息;3、pgrep命令,根据特定条件查询进程PID信息;4、pstree命令,查看进程树,以树形结构列出进程信息。
</div>
<footer class="entry-meta">
发布于
<a
href="/index.html?time=2021-02-01"
title="2021-02-01"
rel="bookmark"
>
<time class="entry-date" datetime="2021-02-01"
>2021-02-01</time
> </a
>。 属于
<a
href="/index.html?cate=1"
title="查看 服务器中的全部文章"
rel="category"
>服务器</a
>
分类
</footer>
</article>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a
href="/details.html"
title="彻底告别windows defender"
rel="bookmark"
>彻底告别windows defender</a
>
</h1>
</header>
<img
style="width:200px;height:100px;"
src="https://img.php.cn/upload/article/202102/24/2021022409272725770.jpg"
alt=""
/>
<div class="entry-content">
windows
defender是windows系统自带的一款杀毒软件,对于很多人来说,这款软件不仅没有起到保护电脑的作用,还增加了很多不必要的麻烦。比如我们安装了一些破解版软件,windows
defender就会杀这些破解软件,很让人讨厌。
</div>
<footer class="entry-meta">
发布于
<a
href="/index.html?time=2021-02-01"
title="2021-02-01"
rel="bookmark"
>
<time class="entry-date" datetime="2021-02-01"
>2021-02-01</time
> </a
>。 属于
<a
href="/index.html?cate=1"
title="查看 服务器中的全部文章"
rel="category"
>服务器</a
>
分类
</footer>
</article>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a
href="/details.html"
title="彻底告别windows defender"
rel="bookmark"
>Ubuntu20.04/18.04下安装或更新至PHP8</a
>
</h1>
</header>
<img
style="width:200px;height:100px;"
src="https://img.php.cn/upload/article/000/000/020/2c02ff679ec7afab974a691aac09d535-0.png"
alt=""
/>
<div class="entry-content">
本指南让你了解如何安装最新的 php 版本 8,并在你的任何
VPS、云服务器、专用主机上的 Ubuntu 20.0 或 18.04
系统中升级到最新版本,并将其配置为 Apache 和 Nginx。
</div>
<footer class="entry-meta">
发布于
<a
href="/index.html?time=2021-02-01"
title="2021-02-01"
rel="bookmark"
>
<time class="entry-date" datetime="2021-02-01"
>2021-02-01</time
> </a
>。 属于
<a
href="/index.html?cate=1"
title="查看 服务器中的全部文章"
rel="category"
>PHP</a
>
分类
</footer>
</article>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a
href="/details.html"
title="彻底告别windows defender"
rel="bookmark"
>PHP 8新特性之JIT对PHP应用性能的影响</a
>
</h1>
</header>
<div class="entry-content">
即将发布的 PHP 8 最受大家关注的新特性就是引入了对 JIT
的支持,我已经简单介绍了 JIT 是什么,以及与 Opcache 的区别
</div>
<footer class="entry-meta">
发布于
<a
href="/index.html?time=2021-02-01"
title="2021-02-01"
rel="bookmark"
>
<time class="entry-date" datetime="2021-02-01"
>2021-02-01</time
> </a
>。 属于
<a
href="/index.html?cate=1"
title="查看 服务器中的全部文章"
rel="category"
>PHP</a
>
分类
</footer>
</article>
</div>
<div class="page">
<nav>
<ul class="pagination">
<li
class="page-item disabled"
aria-disabled="true"
aria-label="« 上一页"
>
<span class="page-link" aria-hidden="true">‹</span>
</li>
<li class="page-item active" aria-current="page">
<span class="page-link">1</span>
</li>
<li class="page-item">
<a
class="page-link"
href="https://www.zfsphp.com/cate/2?page=2"
>2</a
>
</li>
<li class="page-item">
<a
class="page-link"
href="https://www.zfsphp.com/cate/2?page=2"
rel="next"
aria-label="下一页 »"
>›</a
>
</li>
</ul>
</nav>
</div>
</div>
<div id="secondary" class="widget-area" role="complementary">
<aside id="search-2" class="widget widget_search">
<form role="search" id="searchform" action="" method="POST">
<div>
<label class="screen-reader-text" for="s">搜索:</label>
<input
placeholder="搜索"
type="text"
class="no-border"
name="keywords"
id="s"
/>
<input
type="submit"
class="btn btn-default"
id="searchsubmit"
value="搜索"
/>
</div>
</form>
<script type="text/javascript">
$(function () {
$("#searchsubmit").click(function () {
if ($("#s").val() != "") {
location.href = "/index.html?s=" + $("#s").val();
}
return false;
});
});
</script>
</aside>
<aside id="recent-posts-2" class="widget widget_recent_entries">
<h3 class="widget-title">热门文章</h3>
<ul>
<li>
<font style="color:#7a7a7a;">[0]</font>
<a
href="/details.html"
title="PHP 8新特性之JIT对PHP应用性能的影响"
>PHP 8新特性之JIT对PHP应用性能的影响</a
>
</li>
<li>
<font style="color:#7a7a7a;">[1]</font>
<a
href="/details.html"
title="Ubuntu20.04/18.04下安装或更新至PHP8"
>Ubuntu20.04/18.04下安装或更新至PHP8</a
>
</li>
</ul>
</aside>
<aside class="widget widget_recent_entries">
<h3 class="widget-title">最近更新</h3>
<ul>
<li>
<font style="color:#7a7a7a;">[0]</font>
<a
href="/details.html"
title="php中文网原创视频:《天龙八部》公益php培训系列课程汇总!"
>php中文网原创视频:《天龙八部》公益php培训系列课程汇总!</a
>
</li>
<li>
<font style="color:#7a7a7a;">[1]</font>
<a
href="/details.html"
title="Mysql php中文网《玉女心经》公益PHP WEB培训系列课程汇总"
>Mysql php中文网《玉女心经》公益PHP WEB培训系列课程汇总</a
>
</li>
</ul>
</aside>
<aside id="archives-2" class="widget widget_archive">
<h3 class="widget-title">文章归档</h3>
<ul>
<li>
<a href="/index.html?time=2021-02" title="2021-02">2021年02月</a
> <font style="color:#7a7a7a;">(1)</font>
</li>
<li>
<a href="/index.html?time=2021-01" title="2021-01">2021年01月</a
> <font style="color:#7a7a7a;">(4)</font>
</li>
<li>
<a href="/index.html?time=2020-12" title="2020-12">2020年12月</a
> <font style="color:#7a7a7a;">(2)</font>
</li>
<li>
<a href="/index.html?time=2020-11" title="2020-11">2020年11月</a
> <font style="color:#7a7a7a;">(1)</font>
</li>
<li>
<a href="/index.html?time=2020-10" title="2020-10">2020年10月</a
> <font style="color:#7a7a7a;">(2)</font>
</li>
</ul>
</aside>
</div>
</div>
<footer id="colophon" role="contentinfo">
<div class="site-info">
<span>友情链接:</span>
<a href="https://www.php.cn" target="_blank">PHP中文网</a>
</div>
</footer>
<footer role="contentinfo" style="margin-top:0;">
<div class="site-info" style="text-align:center;">
<span>
<a href="https://beian.miit.gov.cn" target="_blank"
>苏ICP备2020058653号-1</a
>
</span>
</div>
</footer>
</div>
</body>
</html>
二、html 和 php 混编
需要把文件的后缀名,改为:php
<header id="masthead" class="site-header" role="banner">
<hgroup>
<h1 class="site-title">
<a href="/" title="<?php echo '欧阳克个人博客'; ?>" rel="home"><?php echo '欧阳克个人博客'; ?></a>
</h1>
<h2 class="site-description"><?php echo '欧阳克是PHP中文网的讲师,愿意把知识分享给大家。'; ?> </h2>
</hgroup>
<nav id="site-navigation" class="main-navigation" role="navigation">
<ul class="nav-menu">
<li>
<a href="/index.html"><?php echo '首页'; ?></a>
</li>
<li>
<a href="/index.html?cate=1"><?php echo '服务器'; ?></a>
</li>
<li>
<a href="/index.html?cate=2"><?php echo 'PHP'; ?></a>
</li>
<li>
<a href="/index.html?cate=3"><?php echo '前端'; ?></a>
</li>
<li>
<a href="/index.html?cate=4"><?php echo 'Thinkphp'; ?></a>
</li>
<li>
<a href="/index.html?cate=5"><?php echo 'Layui'; ?></a>
</li>
<li>
<a href="/index.html?cate=6"><?php echo '小程序'; ?></a>
</li>
</ul>
</nav>
</header>
变量输出
<?php
$title = 'php中文网原创视频:《天龙八部》公益php培训系列课程汇总!';
$img = 'https://img.php.cn/upload/course/000/000/001/5d242759adb88970.jpg';
$content = 'PHP中文网因专业的讲师水平和高效的视频质量,推出的各种视频课程系列一直以来都深受大家喜爱。特别是《天龙八部》系列、《独孤九贱》系列、《玉女心经》系列的原创课程在行业内更是具有强大的影响力,好评不断!为了让大家能更快速方便的寻找到相关教程资源,我们在这篇文章中特意将《天龙八部》系列课程整理出来供大家有针对性得学习!';
$data = '2021-02-18';
$class = 'PHP';
?>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a href="/details.html" title="<?php echo $title; ?>" rel="bookmark"><?php echo $title; ?></a>
</h1>
</header>
<img style="width:200px;height:100px;" src="<?php echo $img; ?>" alt="" />
<div class="entry-content"><?php echo $content; ?></div>
<footer class="entry-meta">
发布于
<a href="/index.html?time=2021-02-18" title="2021-02-18" rel="bookmark">
<time class="entry-date" datetime="2021-02-18"><?php echo $data; ?></time>
</a>。 属于
<a href="/index.html?cate=4" title="查看 PHP中的全部文章" rel="category"><?php echo $class; ?></a> 分类
</footer>
</article>
第二条数据
相同的变量名,下面会把上面覆盖,也叫:重新赋值
<?php
$title = 'php中文网《玉女心经》公益PHP WEB培训系列课程汇总';
$img = 'https://img.php.cn/upload/course/000/126/153/5aa23f0ded921649.jpg';
$content = 'php中文网近期推出的《独孤九贱》系列、《天龙八部》系列、《玉女心经》原创视频课程,好评如潮!由于《玉女心经》系列课程没有做成专题,所以大家找起来有点费劲,为了更好的服务广大php中文网粉丝们,特把课程整理汇总给大家!';
$data = '2021-02-11';
$class = 'PHP';
?>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a href="/details.html" title="<?php echo $title; ?>" rel="bookmark"><?php echo $title; ?></a>
</h1>
</header>
<img style="width:200px;height:100px;" src="<?php echo $img; ?>" alt="" />
<div class="entry-content"><?php echo $content; ?></div>
<footer class="entry-meta">
发布于
<a href="/index.html?time=2021-02-11" title="2021-02-11" rel="bookmark">
<time class="entry-date" datetime="2021-02-11"><?php echo $data; ?></time>
</a>。 属于
<a href="/index.html?cate=4" title="查看 PHP中的全部文章" rel="category"><?php echo $class; ?></a> 分类
</footer>
</article>
五数据类型
一、php 标量数据类型
echo 输出数据值,开发时使用
var_dump 可以打印数据类型和值,测试时使用
1、布尔型
布尔型通常用于条件判断
<?php
$x = true;
var_dump($x);
echo '<hr>';
$y = false;
var_dump($y);
?>
2、整型
整数不能包含逗号或空格
整数是没有小数点的
整数可以是正数或负数
整型可以用三种格式来指定:十进制、十六进制、八进制
<?php
$number = 0;
var_dump($number);
echo '<hr>';
$number = 67;
var_dump($number);
echo '<hr>';
$number = -322;
var_dump($number);
?>
3、浮点型
带小数部分的数字
<?php
$number = 10.03;
var_dump($number);
echo '<hr>';
$number = -88.23;
var_dump($number);
?>
4、字符串
<?php
$str = '我是欧阳';
var_dump($str);
echo '<hr>';
$str = 'My name is ou yang';
var_dump($str);
?>
二、php 复合数据类型
三、php 特殊数据类型
1、NULL
NULL 值表示变量没有值
<?php
$null;
var_dump($null);
echo '<hr>';
$null = '';
var_dump($null);
echo '<hr>';
$null = null;
var_dump($null);
?>
6 数组
一、数组
1、创建空数组
$arr = array();
var_dump( $arr );
$arrs = [];
var_dump( $arrs );
2、创建索引数组
$arr = array(
'欧阳',
'西门',
'灭绝'
);
var_dump( $arr );
3、创建关联数组
$arr = [
'ouyang' => '欧阳',
'ximen' => '西门',
'miejue' => '灭绝'
];
var_dump( $arr );
4、输出数组值
$arr = [
'欧阳',
'西门',
'灭绝'
];
echo $arr[0];
echo '<hr>';
echo $arr[1];
echo '<hr>';
echo $arr[2];
echo '<hr>';
$arrs = [
'ouyang' => '欧阳',
'ximen' => '西门',
'miejue' => '灭绝'
];
echo $arrs['ouyangke'];
echo '<hr>';
echo $arrs['huangrong'];
echo '<hr>';
echo $arrs['guojing'];
echo '<hr>';
5、打印数组 print_r
$arr = [
'欧阳',
'西门',
'灭绝'
];
print_r($arr);
6、php 连接符
$var1 = 'PHP讲师';
$var2 = '欧阳';
var_dump( $var1 . $var2 );
var_dump( $var1 . ':' . $var2 );
二、php 多维数组
1、二维数组
$arr = array(
array(
'name' => '欧阳',
'school' => 'PHP中文网'
),
array(
'name' => '西门',
'school' => 'PHP中文网'
),
array(
'name' => '灭绝',
'school' => 'PHP中文网'
)
)
var_dump($arr);
print_r($arr);
2、三维数组
$arr = [
[
'name' => '欧阳',
'school' => 'PHP中文网',
'gongfu' => [
'PHP',
'小程序',
'layui',
'Thinkphp'
]
],
[
'name' => '西门',
'school' => 'PHP中文网',
'gongfu' => [
'PHP',
'Thinkphp',
'Laravel',
'实战项目'
]
],
[
'name' => '灭绝',
'school' => 'PHP中文网',
'gongfu' => [
'HTML',
'PHP',
'layui',
'Thinkphp'
]
]
];
var_dump($arr);
print_r($arr);
备:数组最好不要超过3层
3、多维数组访问
```php
$arr = [
[
'name' => '欧阳',
'school' => 'PHP中文网',
'gongfu' => [
'PHP',
'小程序',
'layui',
'Thinkphp'
]
],
[
'name' => '西门',
'school' => 'PHP中文网',
'gongfu' => [
'PHP',
'Thinkphp',
'Laravel',
'实战项目'
]
],
[
'name' => '灭绝',
'school' => 'PHP中文网',
'gongfu' => [
'HTML',
'PHP',
'layui',
'Thinkphp'
]
]
]
echo $arr[0]['name'].' --- ';
echo $arr[0]['gongfu'][0].' --- ';
echo $arr[0]['gongfu'][1];
备:数组访问时,层次不要弄错
三、php 数组循环
1、foreach
$arr = array(
'ouyang' => '欧阳',
'ximen' => '西门',
'miejue' => '灭绝'
);
foreach( $arr as $v ){
echo $v;
echo '<hr>';
}
2、key 和 value
$k 和 $v,变量名,可以自定义
示例1:
$arr = array[
'ouyang' => '欧阳',
'ximen' => '西门',
'miejue' => '灭绝'
];
foreach( $arr as $k=>$v ){
echo $k . ' --- ' . $v;
echo '<hr>';
}
示例2:
$arr = [
'欧阳',
'西门',
'灭绝'
];
foreach( $arr as $k=>$v ){
echo $k . ' --- ' . $v;
echo '<hr>';
}
3、循环多维数组
示例1:
$arr = [
[
'name' => '欧阳',
'school' => 'PHP中文网'
],
[
'name' => '西门',
'school' => 'PHP中文网'
],
[
'name' => '灭绝',
'school' => 'PHP中文网'
]
];
foreach( $arr as $k=>$v ){
print_r($v);
echo '<hr>';
}
示例2:
$arr = [
[
'name' => '欧阳',
'school' => 'PHP中文网'
],
[
'name' => '西门',
'school' => 'PHP中文网'
],
[
'name' => '灭绝',
'school' => 'PHP中文网'
]
];
foreach( $arr as $k=>$v ){
foreach ($v as $key => $value) {
echo $value;
echo '<hr>';
}
}
示例3:
$arr = [
[
'name' => '欧阳',
'school' => 'PHP中文网'
],
[
'name' => '西门',
'school' => 'PHP中文网'
],
[
'name' => '灭绝',
'school' => 'PHP中文网'
]
];
foreach( $arr as $k=>$v ){
echo $v['name'].' --- '.$v['school'];
echo '<hr>';
}
php 条件判断
1、三元运算符 ? :
$ouyang = '欧阳';
var_dump( $ouyang ? '我是欧阳克' : '我也不知道我是谁' );
2、if
$ouyang = '欧阳';
if($ouyang){
echo $ouyang;
}
3、if else
$ouyang = '欧阳';
if($ouyang){
echo $ouyang;
}else{
echo '灭绝师太';
}
4、if elseif else
$ouyang = '欧阳';
$miejue = '灭绝师太';
if($ouyang){
echo $ouyang;
}else if($miejue){
echo $miejue;
}else{
echo '西门大官人';
}
5、switch case default
$str = 'ximen';
switch ($str) {
case 'ouyang':
echo '我是欧阳';
case 'miejue':
echo '我是灭绝师太';
case 'ximen':
echo '我是西门大官人';
default:
echo '我不知道我是谁';
}
6、break
结束当前代码
$str = 'ximen';
switch ($str) {
case 'ouyang':
echo '我是欧阳';
break;
case 'miejue':
echo '我是灭绝师太';
break;
case 'ximen':
echo '我是西门大官人';
break;
default:
echo '我不知道我是谁';
break;
}
7、PHP8 新特性 match
$str = 'ximen';
echo match ($str) {
'ouyang' => '我是欧阳',
'miejue' => '我是灭绝师太',
'ximen' => '我是西门大官人'
};
匹配多条件、默认值
$str = 'ouyang';
echo match ($str) {
'miejue','miejueshitai' => "我是灭绝师太",
'ximen','ximendaguanren' => "我是西门大官人",
default => '我是欧阳',
};
备:没有默认值,会报错的
8、switch 和 match 对比
函数
一、函数介绍
1、函数判断
直接判断不存在的变量,会报错
if($miejue){
echo '灭绝师太';
}
使用isset函数判断
if(isset($miejue)){
echo '灭绝师太';
}
使用empty函数判断
if(empty($miejue)){
echo '灭绝师太';
}
2、什么是函数
函数是一段可以重复执行的代码片断
函数是实现代码复用的重要手段
函数是现代编程语言最重要的基本单元
函数永远是编程的核心工作
3、函数的分类
根据函数的提供者(编写者),分为二类
系统函数: 编程语言开发者事先写好提供给开发者直接使用的
自定义函数: 用户根据自身需求,对系统功能进行扩展
二、系统函数
PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。
1、String 字符串函数
// 将字符串转化为小写
$ouyang = 'OUYANGKE';
echo strtolower($ouyang);
echo '<hr>';
// 将字符串转化为大写
$miejue = 'miejueshitai';
echo strtoupper($miejue);
echo '<hr>';
// 将字符串分割为数组
$php = '欧阳克,灭绝师太,西门大官人,天蓬';
print_r ( explode(',',$php) );
echo '<hr>';
// 将字符串进行md5加密
$ximen = '西门大官人';
echo md5($ximen);
2、Array 数组函数
$arr = [
'欧阳克',
'灭绝师太',
'西门大官人',
'天蓬'
];
// 数组中元素的数量
echo count($arr);
echo '<hr>';
// 把数组元素组合为字符串
echo implode(',',$arr);
echo '<hr>';
// 数组中是否存在指定的值
echo in_array('天蓬',$arr);
echo '<hr>';
// 删除数组中的最后一个元素
array_pop($arr);
print_r($arr);
官网手册:https://www.php.net/manual/zh/book.array.php
三、自定义函数
1、函数的基本语法
// 创建函数
function fun_name(参数列表)
{
//函数体: 由一条或多条语句组成,可以为空
}
必须使用关键字:function 声明
函数名称不区分大小写,多个单词推荐使用下划线连接
2、调用函数
// 创建函数
function fun_name()
{
return '我是:欧阳克';
}
// 调用函数
echo fun_name();
3、函数参数
// 创建函数
function fun_name($name)
{
return '我是:' . $name;
}
// 调用函数
echo fun_name('欧阳克');
方法参数可以有默认值,有默认值可以不传值
方法必须以返回的方式,不要用 echo 输出的方式
// 创建函数
function fun_name($name,$school='PHP中文网')
{
return '我是:' . $name . ',我来至:' . $school;
}
// 调用函数
echo fun_name('欧阳克','过去的世界');
4、作用域
php中, 只有函数作用域和全局作用域
所有函数作用域中的变量,外部不可见
全局作用域声明变量,在函数中是可见的
$name = '灭绝师太';
$school = 'PHP中文网';
// 创建函数
function fun_name()
{
global $name;
global $school;
return '我是:' . $name . ',我来至:' . $school;
}
// 调用函数
echo fun_name();
5、PHP8 新特性:命名参数
PHP7
function jisuan($a,$b=0,$c=0,$d=0){
echo $a;
echo '<hr/>';
echo $b;
echo '<hr/>';
echo $c;
echo '<hr/>';
echo $d;
echo '<hr/>';
}
jisuan(10,20,30,40);
PHP8
f
unction jisuan($a,$b=0,$c=0,$d=0){
echo $a;
echo '<hr/>';
echo $b;
echo '<hr/>';
echo $c;
echo '<hr/>';
echo $d;
echo '<hr/>';
}
jisuan(10,20,d:30,c:40);
运算符
一、php 运算符
示例:
<?php
var_dump( 120 + 80 );
echo '<hr>';
var_dump( 120 - 80 );
echo '<hr>';
var_dump( 120 * 80 );
echo '<hr>';
var_dump( 120 / 80 );
echo '<hr>';
var_dump( 120 % 80 );
echo '<hr>';
var_dump( 120++ );
echo '<hr>';
var_dump( 120-- );
echo '<hr>';
var_dump( ++120 );
echo '<hr>';
var_dump( --120 );
echo '<hr>';
var_dump( 120 . 80 );
echo '<hr>';
$var1 = 'PHP讲师:';
$var2 = '欧阳';
var_dump( $var1 . $var2 );
//两个变量连接,没问题
//一个变量和字符串,没问题
//一个变量连接整型,必须在整型前面增加空格
?>
二、php 赋值运算符
示例:
$int = 120;
var_dump($int);
echo '<hr>';
$int += 30;
var_dump( $int );
echo '<hr>';
$int = $int + 30;
var_dump( $int );
echo '<hr>';
$int -= 30;
var_dump( $int );
echo '<hr>';
$int *= 30;
var_dump( $int );
echo '<hr>';
$int /= 30;
var_dump( $int );
echo '<hr>';
$int %= 30;
var_dump( $int );
echo '<hr>';
$int .= 30;
var_dump( $int );
三、php 比较运算符
1、> 大于
var_dump( 100 > 100 );
echo '<hr>';
var_dump( 100 > 90 );
echo '<hr>';
var_dump( 100 > 110 );
echo '<hr>';
var_dump( true > false );
echo '<hr>';
var_dump( 'php' > 'php' );
echo '<hr>';
2、>= 大于等于
var_dump( 100 >= 100 );
echo '<hr>';
var_dump( 100 >= 90 );
echo '<hr>';
var_dump( 100 >= 110 );
echo '<hr>';
var_dump( true >= false );
echo '<hr>';
var_dump( 'php' >= 'php' );
echo '<hr>';
3、< 小于
var_dump( 100 < 100 );
echo '<hr>';
var_dump( 100 < 90 );
echo '<hr>';
var_dump( 100 < 110 );
echo '<hr>';
var_dump( true < false );
echo '<hr>';
var_dump( 'php' < 'php' );
echo '<hr>';
4、<= 小于等于
var_dump( 100 <= 100);
echo '<hr>';
var_dump( 100 <= 90);
echo '<hr>';
var_dump( 100 <= 110);
echo '<hr>';
var_dump( true <= false);
echo '<hr>';
var_dump( 'php' <= 'php' );
echo '<hr>';
5、== 等于
var_dump( 100 == 100 );
echo '<hr>';
var_dump( true == 'true' );
echo '<hr>';
6、!= 不等于
var_dump( 100 != 100 );
echo '<hr>';
var_dump( true != 'true' );
echo '<hr>';
7、=== 恒等于
var_dump( 100 === 100 );
echo '<hr>';
var_dump( true === 'true' );
echo '<hr>';
8、!== 恒不等
var_dump( 100 !== 100 );
echo '<hr>';
var_dump( true !== 'true' );
echo '<hr>';
9、PHP8 新特性:字符串与数字的比较
var_dump( '欧阳' > 100 );
echo '<hr>';
var_dump( '欧阳' < 100 );
echo '<hr>';
var_dump('欧阳' == 0);
php8
四、php 逻辑运算符
1、and 和 &&
//两个真,返回真。有一个是假,返回假。
var_dump( 100 && 30 );
echo '<hr/>';
var_dump( true && true );
echo '<hr/>';
var_dump( true and false );
echo '<hr/>';
var_dump( false and false );
echo '<hr/>';
2、or 和 ||
//一个真,返回真。两个真,返回真。两个假,返回假。
var_dump( 120 || 80 );
echo '<hr/>';
var_dump( true || true );
echo '<hr/>';
var_dump( true or false );
echo '<hr/>';
var_dump( false or false );
echo '<hr/>';
3、xor
//一个真、返回真。两个真,返回假。两个假,也返回假。
var_dump( 0 xor 1 );
echo '<hr/>';
var_dump( true xor true );
echo '<hr/>';
var_dump( true xor false );
echo '<hr/>';
var_dump( false xor false );
echo '<hr/>';
4、!
// 取反,如果是真,就是假。如果是假,就是真。
var_dump( !0);
echo ‘
’;
var_dump( !true );
echo ‘
’;
var_dump( !false );
echo ‘
’;
var_dump( !1 );
echo ‘
’;
循环
1、while
$int = 1;
while ( $int < 10 ) {
echo $int;
echo '<hr/>';
$int ++;
}
2、do while
$int = 1;
do {
echo $int;
echo '<hr>';
$int++;
}while ( $int < 1);
3、for
示例1:
for( $int=1; $int<10; $int++){
echo $int;
echo '<hr>';
}
示例2:
for( $int=1; $int<10; $int++){
if($int == 5){
echo '等于5,单独输出';
}else{
echo $int;
}
echo '<hr>';
}
4、continue
结束当前循环,进入下次循环
在循环语句中使用 while for
for( $int=1; $int<10; $int++){
if($int == 5){
//结束当前循环,进入下次循环
continue;
}
var_dump($int);
echo '<hr>';
}
5、break
结束循环
在循环语句中使用 while for switch
可以跳出多层循环
示例1:
for( $int=1; $int<10; $int++){
if($int == 5){
//结束当前循环,进入下次循环
break;
}
var_dump($int);
echo '<hr>';
}
示例2:
$money = 50000;
switch ($money) {
case $money >= 50000:
echo '我要买个华为Mate X2 手机';
break;
case $money >= 20000:
echo '我要买个iphone手机';
break;
case $money >= 10000:
echo '我要买个小米手机';
break;
case $money >= 5000:
echo '我只能买个二手手机';
break;
default:
echo '我啥也买不起,洗洗睡吧';
break;
}
一、实战
1、一维数组
<?php
$menu = [
'首页',
'服务器',
'PHP',
'前端',
'Thinkphp',
'Layui',
'小程序'
];
?>
// 写法一
<ul class="nav-menu">
<?php
foreach($menu as $menu_v){
echo '<li>';
echo ' <a href="/index.html">'.$menu_v.'</a>';
echo '</li>';
}
?>
</ul>
// 写法二
<ul class="nav-menu">
<?php
foreach($menu as $menu_v){
?>
<li>
<a href="/index.html"><?php echo $menu_v; ?></a>
</li>
<?php
}
?>
</ul>
2、二维数组
<?php
$article = [
[
'title' => 'php中文网原创视频:《天龙八部》公益php培训系列课程汇总!',
'img' => 'https://img.php.cn/upload/course/000/000/001/5d242759adb88970.jpg',
'content' => 'PHP中文网因专业的讲师水平和高效的视频质量,推出的各种视频课程系列一直以来都深受大家喜爱。特别是《天龙八部》系列、《独孤九贱》系列、《玉女心经》系列的原创课程在行业内更是具有强大的影响力,好评不断!为了让大家能更快速方便的寻找到相关教程资源,我们在这篇文章中特意将《天龙八部》系列课程整理出来供大家有针对性得学习!',
'date' => '2021-02-18',
'class' => 'PHP'
],
[
'title' => 'php中文网《玉女心经》公益PHP WEB培训系列课程汇总',
'img' => 'https://img.php.cn/upload/course/000/126/153/5aa23f0ded921649.jpg',
'content' => 'php中文网近期推出的《独孤九贱》系列、《天龙八部》系列、《玉女心经》原创视频课程,好评如潮!由于《玉女心经》系列课程没有做成专题,所以大家找起来有点费劲,为了更好的服务广大php中文网粉丝们,特把课程整理汇总给大家!',
'date' => '2021-02-11',
'class' => 'PHP'
],
[
'title' => 'html5中submit是按钮么',
'img' => '',
'content' => 'html5中submit是按钮,它是button的一个特例,它把提交这个动作自动集成了。submit会自动将表单的数据提交,使用submit时需要验证要加return true或false。',
'date' => '2021-02-10',
'class' => '前端'
],
[
'title' => 'css如何去除下划线',
'img' => '',
'content' => 'css去除下划线的方法:首先创建一个HTML示例文件;然后在body中定义一个a标签;最后通过css属性为“a{text-decoration:none}”去除下划线即可。',
'date' => '2021-02-01',
'class' => '前端'
],
[
'title' => 'linux如何查看进程',
'img' => 'https://img.php.cn/upload/article/202102/24/2021022409272725770.jpg',
'content' => 'windows defender是windows系统自带的一款杀毒软件,对于很多人来说,这款软件不仅没有起到保护电脑的作用,还增加了很多不必要的麻烦。比如我们安装了一些破解版软件,windows defender就会杀这些破解软件,很让人讨厌。',
'date' => '2021-02-01',
'class' => '服务器'
],
[
'title' => 'Ubuntu20.04/18.04下安装或更新至PHP8',
'img' => 'https://img.php.cn/upload/article/000/000/020/2c02ff679ec7afab974a691aac09d535-0.png',
'content' => '本指南让你了解如何安装最新的 php 版本 8,并在你的任何 VPS、云服务器、专用主机上的 Ubuntu 20.0 或 18.04 系统中升级到最新版本,并将其配置为 Apache 和 Nginx。',
'date' => '2021-02-01',
'class' => 'PHP'
],
[
'title' => 'PHP 8新特性之JIT对PHP应用性能的影响',
'img' => '',
'content' => '即将发布的 PHP 8 最受大家关注的新特性就是引入了对 JIT 的支持,我已经简单介绍了 JIT 是什么,以及与 Opcache 的区别',
'date' => '2021-02-01',
'class' => 'PHP'
]
];
?>
<div id="content" role="main">
<?php
foreach($article as $article_v){
?>
<article>
<header class="entry-header">
<h1 class="entry-title">
<a href="/details.html" title="<?php echo $article_v['title'] ?>" rel="bookmark"><?php echo $article_v['title'] ?></a>
</h1>
</header>
<img style="width:200px;height:100px;" src="<?php echo $article_v['img'] ?>" alt="" />
<div class="entry-content"><?php echo $article_v['content'] ?></div>
<footer class="entry-meta">
发布于
<a href="/index.html?time=2021-02-11" rel="bookmark">
<time class="entry-date"><?php echo $article_v['date'] ?></time>
</a>。 属于
<a href="/index.html?cate=2" rel="category"><?php echo $article_v['class'] ?></a> 分类
</footer>
</article>
<?php
}
?>
</div>
一、实战
1、图片判断
<?php
if(isset($article_v['img'])){
?>
<img style="width:200px;height:100px;" src="<?php echo $article_v['img'] ?>" alt="" />
<?php
}
?>
2、标题判断
<?php
if(!empty($article_v['content'])){
?>
<header class="entry-header">
<h1 class="entry-title">
<a href="/details.html" title="<?php echo $article_v['title'] ?>" rel="bookmark"><?php echo $article_v['title'] ?></a>
</h1>
</header>
<?php
}
?>
3、分类判断
<?php
if(isset($article_v['class'])){
?>
<a href="/index.html?cate=2" rel="category"><?php echo $article_v['class'] ?></a> 分类
<?php
}
?>