【PHP】PHP基本语法
一、什么是PHP?
a) 定义:PHP就是超文本预处理器
b) 超文本:我们前边8天学习的内容其实就是超文本内容
c) 预处理器:相当于牛奶在工厂加工的过程,我们虽然不可见,但是我们可以喝到最终的加工好的牛奶;PHP也一样,网页需要再服务器端(工厂)进行一系列的预加工,预处理,最终所得到的页面就是我们所看到的网页。
二、为什么要使用PHP?
a) 诞生:1995年一个叫勒多夫的人,只是为了维护自己的网站才用C语言写出了这个php语言来对自己的网页进行维护,管理,优化。
b) 特点:方便、快捷、开源、免费
三、你的第一个PHP文件:
a) 文件命名:字母、数字、下划线组成,中间不能包括空格,不要使用中文或其他的特殊符号
b) 后缀名:.php 这就是php文件格式
c) 我们访问一个php文件时,看不到任何的php代码,是因为php的预处理过程在服务器中已经执行完毕。
d) 注意:
1. php文件可以嵌套html代码和php代码
2. html文件只能放html代码而不能放php代码
四、PHP的语言标记:
a) 四种风格
i. <?php 代码内容 ?> 标准风格
ii. <script language=”php”> 代码内容 </script> 长风格
iii. <? 代码内容 ?> 短风格 注意:需要再php.ini中开启 short_open_tag 选项
iv. <% 代码内容 %> ASP风格 注意:需要在php.ini中开启asp_tag选项
五、PHP当中的注释符号
a) // 单行注释
b) /* 多行注释 */
c) # 脚本注释
d) 特点:注释的内容不会再网页中显示,注释的作用是用来调试代码或解释一段代码的
六、PHP当中的空白、换行、回车内容
a) 是为了让我们能够更清晰的了解php当中代码的内容,不会对执行结果有任何影响!
b) 缩进、回车、换行要遵循psr标准 psr7标准
七、PHP当中会经常常用的小工具
a) echo:以字符串的格式输出一段内容
b) var_dump():打印一段内容(内容、长度、类型)
例:
$sex = false; var_dump($sex);
echo $sex; //输出:D:\wamp\www.lamp183\lesson09_PHP01\5.php:5:boolean false
八、php当中的变量:
a) 可以将变量理解为是一个水杯:水杯是一个容器,它可以存放不同的物质,可以放水、茶、雪碧、美年达、花生、瓜子儿、嘘嘘。
b) 变量:就是一个可变的量
c) 定义:
1. $name = “海波”;
1. $sex = “女”;
2. $age = 18;
b) 标识符的命名规则:
1. 可以使用字母、数字、下划线组成,不能使用数字开头,严格区分大小写,且不能使用关键字!
2. 变量名和内容之间有关联的命名方式是最好的!
3. 驼峰命名法
例:
$bgColor="red";
echo"bgColor";
九、变量当中可以存储的数据类型
a) 我们学习了变量,知道杯子该如何定义与使用了,那么杯子当中可以存储哪些内容。
b) 数据类型:
i. 四种标量类型
1. 布尔型(Boolean)
2. 整型(Integer)
3. 浮点型(Float)
4. 字符串型(String)
ii. 两种复合类型
1. 数组型(Array)
2. 对象型(Object)
iii. 两种特殊类型
1. 资源型(Resource)
2. Null空型(Null、null、NULL)
十、布尔型数据
a) 布尔型数据代表了对立面,对与错、真或假、真我们通常用 TRUE来表示,假我们通常用FALSE来表示
b) 如果使用echo在输出一个布尔型数据的时候,真则会返回一个 “1” ,假则会返回一个空字符串” ”;
十一、整型数据:
a) 其实,整型的数据就是一个整数 10 20 100 1000000
b) 范围:-2147483648 ~ +2147483647
c) 进制的分类
i. 二进制:0b
ii. 八进制:0
iii. 十进制:不加
iv. 十六进制:0x
d) 进制的转换:
i. 二进制转十进制:
1. 10100 转为十进制 20
2. 11100100101 转为十进制 1829
ii. 十进制转二进制:
1. 128 转为二进制 10000000
2. 5398 转为二进制 1010100010110
十二、浮点型数据:
a) 最常见的就是就是带小数点的数值 3.14 128.256 2147483648
b) 注意事项:永远不要将两个浮点型的数据进行比较!
i. 0.1 + 0.7 就不等于 0.8
例:
$num1=0.1;
$num2=0.7;
$num3=$num1+$num2; var_dump($num3==0.8); //boolean false
十三、字符串型:
a) 字符串就是一段在php当中的文本内容,通常使用单引号或双引号引起来的内容,就是字符串的内容
b) 可以使用单引号定义一段字符串,也可以使用双引号定义
c) 单引号不支持解析变量
d) 双引号可以解析变量
i. 虽然双引号可以解析变量,但是我们建议在字符串中放变量时,使用花括号括起来
e) 单引号中不能插单引号
f) 双引号中不能插双引号
g) 单引号可以插双引号,双引号可以插单引号,它们可以互插,但是不能自插
h) 如果非得任性,就得自插,只能使用转义符反斜线 “\”
i) 单引号只支持转义单引号本身和反斜线“\”
j) 双引号支持转义所有的转义符号
k) 定义字符串也可以使用定界符来进行定义: <<<string 使用string;结束,注意结束时的string需要顶格写,否则无效
i. 注意:定界符可以插入单引号,也可以插入双引号,同时也可以放变量,但是因为他连 tab键、空格、换行的这些内容都能识别,因此应用相对较少
l) 结论:因为单引号和双引号的特点,单引号不支持解析变量,双引号可以解析变量,因此单引号的执行速度比双引号要快!
十四、NULL空型
a) 它其实表明了一种状态,例如一个变量当中没有存值,那么该变量的状态就是null
b) 以下三种情况的变量可能为空
i. 变量赋值为null
ii. 被销毁的变量
iii. 不存在的变量
十五、自动类型转换:
a) 通常在进行条件判断时,会自动转换为布尔型false
1. 布尔型:false
2. 整型:0
3. 浮点型:0.0或0.00
4. 字符串型:”” 或 “0”
5. 数组型:array()
6. Null空型:null
7. 不存在的变量
b) 通常在进行数学运算时,会自动转换为数值型:
1. 布尔型:true = 1
2. 布尔型:false = 0
3. 字符串型:”1234abcd” = 1234
4. Null空型:null = 0
c) 在进行字符串运算时,会自动转换为字符串型:
1. 布尔型:true = “1”
2. 布尔型:false = “”
3. Null空型:null = “”
六、 强制类型转换:
a) 两个小工具:settype()、gettype()
b) Settype():强制设置一个变量的类型
c) Gettype():获取一个变量的类型
d) 一种是改变原变量类型
i. Settype(要改变类型的变量名 , “格式的单词”);
例:
/*强制类型转换*/
$a = 0;
var_dump($a); //int 0 settype($a,"boolean");
var_dump($a); //boolean false
ii. Boolean、integer、float、string、array、object、null
e) 另一种是不改变原变量类型
i. 转变之后用于接收的变量 = (格式的单词) 要改变类型的变量名
ii. $b = “100”; $c = (integer) $b;
例:
//不改变原变量类型的强制类型转换
$b = "海波";
var_dump($b); //string '海波' (length=6) $c = (integer) $b;
var_dump($c); //int 0
十六、用于判断变量类型的小工具
a) Is_bool(); 判断变量是否为布尔型数据
b) Is_int(); 判断变量是否为整型
c) Is_float(); 判断变量是否为浮点型
d) Is_string(); 判断变量是否为字符串型
e) Is_array(); 判断变量是否为数组型
f) Is_object(); 判断变量是否为对象型
g) Is_resource(); 判断变量是否为资源型
h) Is_null(); 判断变量是否为空
十七、两个比较特殊的小工具
a) Isset(); 用于检测一个变量是否被设置
b) Empty(); 用于判断一个变量是否为空
九、 可变变量和引用变量
a) 可变变量
i. $a = “b”; $$a = “c”; echo $b; 结果为 c
ii. 概念:可变变量的概念就是讲一个变量的值拿过来作为自己的名字来使用,要注意的是,值不能为数字,它应当遵循标识符的命名规则。
b) 引用变量:
i. $a = “hello world!”; $b = &$a; $b = “你好,世界”; echo $a; $a 的结果是“你好,世界!”
ii. 概念:引用地址就相当于两个变量公用了一个地址,无论谁对变量中的值进行了改变,另一个也相应改变,当我们销毁其中的一个变量,另一个变量依然存在!
十八、PHP当中常量:
a) 变量:可以理解为是你的女朋友,可以换,但是不要太频繁
b) 常量:可以理解为是你的老婆,不可以换
c) 常量:在之后的学习当中,常量多用于那些比较重要的地方,例如一个网站的配置文件,设置好之后的常量,它不能被覆盖,不能被销毁!
d) 定义:define(‘常量名’,’常量值’); 注意:常量名通常使用大写,以便于区分
e) 使用:使用常量的方式很简单,直接写出常量名即可,注意不需要加任何修饰符号。
f) 注意:如果输出了一个不存在的常量名,则会以字符串的形式来解析,只不过我们不建议使用这种方式输出字符串,因为一方面它会报错,另外一方面它输出的速度要比字符串慢8倍
g) 查看某个常量是否已经被定义:defined(常量名);
【PHP】PHP基本语法的更多相关文章
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- 探索C#之6.0语法糖剖析
阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...
- [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...
- Velocity初探小结--velocity使用语法详解
做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- C#语法糖大汇总
首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...
- 值得注意的ibatis动态sql语法格式
一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...
- Flex 布局教程:语法篇
作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...
- postgresql 基本语法
postgresql数据库创建/修改/删除等写入类代码语法总结: 1,创建库 2,创建/删除表 2.1 创建表 create table myTableName 2.2 如果表不存在则创建表 crea ...
随机推荐
- 干货来啦。Flask框架看这一篇就够了,关注不迷路,Jeff带你看源码。开发技术时时更新
目录 一.初识Flask 1.1 什么是flask? 1.2 为什么要有flask? 二.Flask快速启动 三.Flask四剑客 三.flask的配置文件 可以配置的属性 四.flask路由 4.1 ...
- Checkbox 勾上 不让勾下 同步手动刷新复选框状态 iview
<Checkbox v-show="!disabledForm" ref="youwubianhuaRef" :value="youwubian ...
- 在d盘创建文件夹,里面有aaa.txt/bbb.txt/ccc.txt,然后遍历出aaa文件夹下的文件(新手)
//导入的包.import java.io.File;import java.io.IOException;//创建的一个类.public class zy { //公共静态的主方法. public ...
- 性能测试工具LoadRuner你所不知道的内幕
谈到性能测试,大家一定会联想到Jmeter和LoadRunner,这两款工具目前在国内使用的相当广泛,主要原因是Jmeter是开源免费,LoadRunner 11在现网中存在破解版本.商用型性能测试工 ...
- C# lock 语法糖实现原理--《.NET Core 底层入门》之自旋锁,互斥锁,混合锁,读写锁
在多线程环境中,多个线程可能会同时访问同一个资源,为了避免访问发生冲突,可以根据访问的复杂程度采取不同的措施 原子操作适用于简单的单个操作,无锁算法适用于相对简单的一连串操作,而线程锁适用于复杂的一连 ...
- Scikit-Learn 源码研读 (第二期)基类的实现细节
目录 BaseEstimator `get_params` `set_params` ClassifierMixin RegressorMixin 检查传入的对象 检查样本数和权重系数 实现$R^2$ ...
- 1. python跨目录调用模块
快速镜像安装第三方库 : pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy (三方库名字) 同目录下,我们可以直接调用模块, ...
- Swift 4.0 字符串(String)学习
定义字符串常量(常量只有读操作) let lString = "constant" let lString1: String = "constant" 定义字符 ...
- Journal of Proteome Research | 人类牙槽骨蛋白的蛋白质组学和n端分析:改进的蛋白质提取方法和LysargiNase消化策略增加了蛋白质组的覆盖率和缺失蛋白的识别 | (解读人:卜繁宇)
文献名:Proteomic and N-Terminomic TAILS Analyses of Human Alveolar Bone Proteins: Improved Protein Extr ...
- python对齐输出
这个问题烦恼了挺久,一般情况下我都是用\t解决,但其实这样的办法并不是很nice,然后今天在写一个demo的时候实在看不下去,就百度科普了一波,确实是有比较nice的解决方案. 像这样: 令人十分难受 ...