PHP 语言标记

因为 PHP 是兼容当时的主流语言,所以 PHP 有四种标记方式:

  • <?php PHP 代码 ?>。这是 PHP 最为正宗的语言标记,称为标准风格标记、XML 风格标记等,推荐使用
  • <? PHP代码 ?>。这是 PHP 语言标记的简便写法,称为短风格标记,不建议使用,因为能在 Apache 中禁用这种标签
  • <% PHP代码 %>。这是为了兼容习惯了 ASP 和 JSP 的程序员,称为 ASP 风格标记,不建议使用,能在 Apache 中禁用,并且和 ASP、JSP 区分度不高
  • 。这是为了兼容习惯了 JavaScript 的用户,称为长风格标记,不建议使用,冗长并且失去了 PHP 可以随意放置在任意地方的特性,只能嵌入 HTML 中,而不能在标签中使用

注释

PHP 的注释也是参照主流的开发语言设置的,也含有兼容其他语言的部分,其注释类型主要有以下四种:

  • //(单行注释)。注释掉 "//" 后面的所有内容(包括其他注释符)
  • /* 注释内容 */(多行注释)。注释掉符号内包裹的所有内容,不能嵌套,也不能和文档注释混用
  • /** 注释内容 */(文档注释)。作用和多行注释一样,但可以被提取出来形成帮助这一类东西
  • # 注释内容(脚本注释)。作用和单行注释一样,目的是兼容有这种习惯的开发者

PHP 编程规范

两个空行

  • 一个源文件的两个代码片段之间
  • 两个类的声明之间

一个空行

  • 两个函数声明之间
  • 函数内的局部变量和函数的第一条语句之间
  • 块注释或单行注释之前
  • 一个函数内的两个逻辑代码段之间

空格

  • 空格一般应用与关键字与括号之间,但是函数名称与左括号之间不加空格
  • 一般在参数列表中的逗号后面加上空格
  • 数学算式的操作数和运算符之间应添加空格(二进制运算与一元运算符除外)
  • for 语句中的表达式应该用分号分开,后面添加空格
  • 强制类型转换语句中的强制类型的右括号与表达式之间应该添加空格

变量

PHP 与 JavaScript 一样,是一种弱类型的编程语言,也就是说,不必在定义 PHP 变量时就声明其类型。

  • 使用规则:使用时必须在变量名前面加上 "$" 符号,否则不会当做变量处理
  • 声明规则:声明变量时也需要加 "$",声明时必须赋值,系统会根据值来设置变量类型

可变变量

PHP 可以将某个变量的值做为变量名,如:$a = 'b';,$$a 就是代表 $b,如果修改 $a 的值,$$a 需要重新定义,但是 $b 仍然可以使用

变量的引用

PHP 的变量引用是将两个变量关联起来,并不是两个变量对应同一块内存空间,删除其中一个变量不会对另一个变量产生任何影响,只是少了关联关系而已

命名规则

  • 可以使用系统关键字为变量命名,因为 PHP 的变量都带有 "$",可以区分关键字与变量
  • 不能以数字开头
  • 不能含有 PHP 的运算符,如:"+"、"-"、"*"、"/"等
  • PHP 只有变量和常量区分大小写,其余不区分

数据类型

PHP 提供了 8 种基本的数据类型,分为:标量类型(1-4)、复合类型(5-6)、特殊类型等(7-8)

  1. 整型:int、integer、long
  2. 布尔型:bool、boolean(与 bool 相同,兼容程序员习惯)
  3. 浮点型:float、double、real(real 似乎可以和 double 等价,PHP 并没有规定它们的精度区别)
  4. 字符串:string
  5. 数组:Array
  6. 对象:Object
  7. 资源类型:resource
  8. 空类型:NULL(变量为空即代表变量不存在)

数据类型补充说明

与布尔 false 相等的值

  • false("false"为 true)
  • 0
  • 0.0
  • " "或者"0"
  • 没有成员变量的数组(array())
  • 没有单元的对象(仅适用于 PHP4)
  • 特殊类型 NULL(包括尚未设定的变量)

整型的数据溢出

整型数值最大范围为 ±2147483647,如果用超出范围的数赋值给整型变量,整型变量会提升为 float,如果强制使用 int 存储,则溢出的部分重新加在最小值处,直至最后的值在整型数据区间内为止,此时的值为该数的 int 型数据

浮点类型的精度

浮点型最大精度为小数点后15位,永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等

字符串中的变量解析

假设有一个变量 $beer,我们需要输出 "$beers",此时不是解析成变量 $beer,而是解析成 $beers,要解析成 $beer 的话可以使用 {$beer}s,或者 ${beer}s

字符串中的定界符

可以使用 "<<<" 后接定界符,定界符除了不能初始化类成员外,和双引号作用相同,定界符的结束符需要在第一列,如:


$string = <<<EOF
随便写文本
这里的所有文本都将成为变量的值
可以出现任意变量、引号、转义等
EOF;

类型转换

PHP 中有两种类型转换方式,其中一种为自动转换,将小的数据类型转换为较大的数据类型时自动发生;另一种为强制转换,强制转换有三种方式:

  • setType(变量名, 类型);。此函数会直接修改变量的数据类型,是不可逆操作,有可能丢失精度
  • 变量2 = (类型)变量1;。不改变 变量1 的数据类型,直接将转换后的值赋值给 变量2
  • 变量2 = 类型val(变量1);。调用函数,不改变 变量1 的数据类型,直接将转换后的值赋值给 变量2。例如:$b = intval($a);

与变量有关的函数

  • isset(变量);。判断变量是否存在,如果值为 NULL 也等价于不存在
  • unset(变量);。释放变量所占资源
  • setType(变量, 类型);。改变变量数据类型
  • getType(变量);。获取变量数据类型
  • empty(变量);。判断变量是否为空
  • var_dump();。输出变量的类型和值
  • is_类型(变量);。判断变量是否为某个类型,如:

is_int()
is_array()
is_resource()
is_scalar()——是否为标量
is_numeric()——是否为数字或数字字符串
is_callable()——判断是否为有效函数名

常量

  • 定义:define("常量名", 值);
  • 使用:直接使用常量名,不需要加 "$"
  • 命名习惯:全部大写,使用 "_" 区分单词
  • 常量的类型:只能是标量类型
  • 相关函数:defined("常量"),判断常量是否已经定义
  • 注意事项:不能使用 unset() 删除常量;不论何时都不加 "$"

特殊常量

PHP 中的特殊常量有 2 种:预定义常量、魔术常量。

预定义常量是由系统预先设定好的,比如说:M_PI:数学中的 π

魔术常量每次的取值都不相同,是和运行环境有关的常量,如:


__FILE__:取文件全路径名
__LINE__:取代码行数
__FUNCTION__:取调用的函数名
PHP_VERSION:取当前 PHP 版本

易学PHP——PHP基础知识的更多相关文章

  1. IT运维的五大基础知识

    IT运维的五大基础知识 | 浏览:331 | 更新:2014-09-25 11:36 IT运维对于很多企业都很重要,接下来运维的一些基础知识天天客服IT运维总监龙少文,就给大家介绍下IT运维的基础知识 ...

  2. Java之--Java基础知识

    一.软件基础知识 1.软件:一系列按特定顺序组织的计算机数据和指令的集合. 1)系统软件:DOS.windows.linux. 2)应用软件:QQ.扫雷等. 2.软件开发就是制作软件. 3.人与计算机 ...

  3. [JIT_APP]Java基础知识总结

    一.Java语言的基础知识 1. 开发Java语言的公司 美国Sun(Sum Microsystems)公司开发.   2.Java的3个版本 J2SE(Java2 Standard Edition) ...

  4. CSS基础知识解析

    一.基础知识 1.1 CSS组成 css 样式由选择符和声明组成,而声明又由属性和值组成,如下图所示: 选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝 ...

  5. web前端基础知识学习网站推介

    内容:一.基础知识及学习资料1. HTML入门学习:http://www.w3school.com.cn/html/index.aspHTML5 入门学习:http://www.w3school.co ...

  6. ArcGIS API for JavaScript开发初探——基础知识

    1.前言 在ArcGIS Web API开发体系中一共有四大类,分别为: ArcGIS API for Flex ArcGIS API for JavaScript ArcGIS API for RE ...

  7. java基础知识一

    1.计算机基础知识概述 (1) 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速处 ...

  8. Java复习(一)——Java语言概述、开发环境、基础知识

    设计模式:在各种应用系统中被大量应用,是设计的“常用套路” 作为Java WEB开发人员,需要掌握HTML/CSS/JS和数据库相关知识 常用的应用程序框架:Spring MVC,Spring Boo ...

  9. 「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !

    本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指南」一份涵盖大 ...

随机推荐

  1. 【英语魔法俱乐部——读书笔记】 2 中级句型-复句&合句(Complex Sentences、Compound Sentences)

    [英语魔法俱乐部——读书笔记] 2 中级句型-复句&合句(Complex Sentences.Compound Sentences):(2.1)名词从句.(2.2)副词从句.(2.3)关系从句 ...

  2. 02.Sencha ExtJS 6 - What is Viewport?

    什么是Viewport? Viewport (Ext.container.Viewport)是一个专门的容器用于可视应用领域(浏览器窗口).Viewport渲染自身到网页的documet body区域 ...

  3. 关于rank、dense_rank、ROW_NUMBER及OVER(PARTITION BY)、OVER(ORDER BY)的一些用法

    CREATE TABLE t_harry ( id int NOT NULL, ) DEFAULT NULL, ChannelID ) DEFAULT NULL, TimeStamp datetime ...

  4. ORACLE连接SQLSERVER

    一.实验(实验成功) 1.实验目标:ORACLE连接SQLSERVER以及查询数据 2.搭建的环境: oracle 9i 9.0.2.0.1 地址:192.168.40.139 sql2000 的数据 ...

  5. Excel表格解析

    //add by yangwenpei WGCW-144 使用Excel表格导入纸票记录 20161212 start /** * @param fileInputStream * @param co ...

  6. Eclipse设置默认注释

    在 windows-->preferenceJava-->Code Style-->Code Templatescode-->new Java file点编辑,覆盖原文本: $ ...

  7. java 截取url的参数

    /** * 去掉url中的路径,留下请求参数部分 * @param strURL url地址 * @return url请求参数部分 * @author lzf */ private static S ...

  8. 把cmd信息中的正常和异常输出分别输出到不同txt文件中

    场景一: 1.大量滚动信息容纳不下,在小黑屏中被冲刷掉. 2.希望把正常输出和异常输出分别输出到不同地方. 相关命令 一共有4个输出到文件的命令,现以jar命令打war包举例说明: 命令 说明 举例  ...

  9. 推送 iOS 10

    1:APNs通知与应用内消息对比 极光文档上面是这么写的 后来更直接的说法是: 2:下面是介绍app不同状态下面接受到通知调用的方法: // iOS 10 Support,这个是程序在前台接受到通知是 ...

  10. MINA系列学习-mina整体介绍

    今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者类的方法.我倒是想从mina源码的结构和功能上对这个框架进行剖析.源码的阅 ...