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 />';
}
php速成_day1的更多相关文章
- 《LoadRunner12七天速成宝典》来了
看到自己的新书又要发行了,算算从09年第一本书开始,不知不觉已经是第四本书了(帮朋友合写的书不算),每次写完之后都会说太累了,不想再写了,但是却又次次反悔,吞下食言的苦果.如果非要说第四本书的感受,那 ...
- Java正则速成秘籍(一)之招式篇
导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...
- Java正则速成秘籍(二)之心法篇
导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...
- Java正则速成秘籍(三)之见招拆招篇
导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...
- 【小白的CFD之旅】08 CFD速成之道
学了那么一个星期的流体力学,又看了一周的计算流体力学,小白对于如何应用CFD解决工程流体问题,依然是一无所知.眼看一个月的时间已经过半,小白有点着急起来.于是在一个阳光明媚的早晨,小白又找到了黄师姐. ...
- 一个简单的html5页面在线速成工具!(当然本文主要说下他的成果的结构)
分享一个好玩的web app页面速成工具 当然主要是让大家看下他的原理 看着他的结构大家就该猜到这个了.这个是利用换页之后给当前div加了一个active,然后利用css控制效果 这个毫无疑问是采用最 ...
- 高手速成android开源项目【导航篇】
Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项目,贡献出他们的智慧和创造力.学习开源代码是掌握技术的一个 ...
- 【翻译】CEDEC2015 速成Albedo Chart 制作
关于pbr材质和贴图的制作,最近llegorithmic提供了几篇不错的guide https://www.allegorithmic.com/pbr-guide 不过像如何从通过现实场 ...
- 30天,O2O速成攻略【8.30南京站】
活动概况 时间:2015年8月30日13:30-16:30 地点:啡咖啡·孵化器(南京市玄武大道699-22号江苏软件园22栋) 主办:APICloud.Udesk.人为峰 网址:www.apiclo ...
随机推荐
- 计算机操作系统学习(一) Linux常用指令(随时更新)
1.chmod 以下转载至https://blog.csdn.net/summer_sy/article/details/70142475 chmod u+x file.sh 就表示对当前目录下的fi ...
- Java8集合框架——HashSet源码分析
本文的目录结构: 一.HashSet 的 Javadoc 文档注释和简要说明 二.HashSet 的内部实现:内部属性和构造函数 三.HashSet 的 add 操作和扩容 四.HashSet 的 r ...
- 本机无oracle,远程连接
描述 本机无oracle,通过PLSQL Developer程序,连接虚拟机中的oracle11gR2 1 下载instant-client 需要和服务端版本对应 下载相应的instant-clien ...
- Golang go-gin 注册路由
代码实现 main.go package main import ( "fmt" "github.com/jihite/go-gin-example/pkg/settin ...
- python 第一节 脚本 import from reload exec
环境Ubuntu 14.04, 不写交互式命令行了,直接脚本开始. # first Python script import sys print(sys.platform) print(2**4) x ...
- 干货分享:反思Essay写作指南
在众多Essay写作类型中,有一种较为难写的一种类型——反思写作(Reflective Writing),提前熟悉这类写作风格的要求,并且养成反思性写作的习惯,非常有必要!本文小编就给大家说说什么是反 ...
- V-Distpicker不能完整显示内容
V-Distpicker插件在列表中,或者在dialog中只显示了第一次的内容,第二次就开始报错.这个和前篇中的地图问题其实如出一辙. 解决办法,重加载,局部刷新. <el-form-item ...
- vagrant 学习笔记
之所以学习他是因为最近换了电脑 又要重新搭环境 很烦躁然后就有了然后 1.先安装 virtualbox2.安装 vagrant3.安装xshell4.重启5.下载系统镜像 (可以去vagrant官网 ...
- Swift - UISplitViewController
https://blog.csdn.net/weixin_43704791/article/details/86424080 2019年01月13日 AppDelegate中: func applic ...
- 第三章,数据和C
3.1 数据类型关键字 位:计算机内部数据存储的最小存储单位(bit). 字节:计算机中数据处理的基本单位(Byte)),1B=8bit. 字:计算机进行数据处理时,一次存取,加工和传送的数据长度.( ...