文章目录
基本语法
基本规则
-
PHP脚本可以放在文档中的任意位置
-
PHP脚本以
<?php
开始,以?>
结束 -
PHP文件的默认文件扩展名是“.php”
-
PHP文件包括HTML标签和PHP脚本代码
-
PHP代码行以分号结束
-
文本类型的值需要用双引号(英文半角)引起来
-
代码示例:向浏览器输出“Hello World!”
<!DOCTYPE html> <html> <body> <h1>my first PHP page</h1> <?php echo "Hello World!"; ?> </body> </html>
常见转义符号
- 转义字符是使用
\
加上一个字符来表示特殊含义 \a
:响铃,发出警报声\n
:换行\r
:回车\t
:水平tab\b
:退格\\
:反斜杠\?
:问号
注释
- 单行注释:
//这是单行注释
- 多行注释:
/*这是多行注释*/
变量
- 变量可以理解为存储信息的容器
- 与代数类似
PHP变量
- 以
$
开始,其后跟变量名称- 一定不要忘记
$
符号,血的教训。
- 一定不要忘记
- 变量名必须以字母或下划线开头
- 变量名只能包含字母、数字及下划线
- 变量名区分大小写
$a
和$A
是两个不同的变量
PHP变量声明
- PHP是一门弱类型语言,没有声明变量的命令
- 变量在第一次被赋值时被创建
变量作用域
- 作用域:脚本中变量可以被使用的区域
local
- 局部变量:在函数内部声明,仅能在函数内部访问
- 不同函数中可以使用相同的变量名
- 函数完成时,它的所有变量(除static)被删除
- 在函数中访问全局变量,需要
global
关键字
global
- 全局变量:在函数外部定义,除函数外,可以被脚本中的任意部分访问
- 存储在 $GLOBALS[index] 的数组中
- index保存变量名称
- 该数组可以再函数中直接访问
- 存储在 $GLOBALS[index] 的数组中
global
关键字:函数内访问全局变量时使用
static
- 首次声明时使用
static
关键字 - 变量仍然是局部变量,但函数完成后不会被删除
parameter
- 参数:
- 通过调用代码将值传递给函数
- 是局部变量
- 在参数列表中声明,作为函数声明的一部分
基本输出语句
echo语句
-
一种语言结构,可以加括号,也可以不加括号
-
可以输出一个或多个字符串
-
字符串可以包含HTML标签
-
代码示例如下
<?php echo "我要学会PHP!<br>"; echo "这是一个","字符串"; ?>
print语句
-
一种语言结构,可以加括号,也可以不加括号
-
只可以输出一个字符串
-
字符串可以包含HTML标签
-
代码示例如下
<?php print "我要学会PHP!<br>"; print "这是一个"; print "字符串"; ?>
二者比较
echo | |
无返回值 | 返回值为1 |
速度较快 | 速度较慢 |
可以输出一个或多个字符串 | 只能输出一个字符串 |
一个语言结构,可以使用括号,也可以不使用括号; 字符串可以包含HTML标签 |
EOF(heredoc)
定义
- 在命令行和程序语言里定义一个字符串的方法,适用于大段文本
- 命令行:sh、csh、ksh、bash、PowerShell等
- 程序语言:Perl、PHP、Python、Ruby等
- EOF相关
- 按照原样输出内部内容
- 其中的任何特殊字符无需转义
使用要求
-
其后必须接分号(英文半角)
-
EOF可用其他字符代替,只需要保证:
- 结束标识与开始标识一致
- 不在正文中出现
- 常用:
EOF、EOT、EOD
等
-
结束标识必须顶格独占一行
- 从行首开始,前后不可以衔接任何字符(包括空白)
-
开始标识可以不带引号
- 不带引号:解析内嵌变量和转义字符
- 带双引号:解析内嵌变量和转义字符
- 带单引号:不解析内嵌变量和转义字符
-
当内容需要使用引号时,直接对引号转义
-
内嵌函数不会被解析
-
在heredoc中,变量不需要用连接符
·
或,
来拼接 -
示例代码如下:
<?php $name="pointer"; $out=<<<EOF "My name is $name." //双引号内的变量会自动解析 EOF; //结束符需要独立一行顶格书写,前后均无空格 echo $out; ?>
数据类型
字符串String
- 一串字符序列,放在单引号或双引号当中
- 如:
"Hello World!"
整型Integer
-
整数
- 至少一个数字
- 无逗号或空格,无小数点
- 可正可负
- 三种格式
- 十进制
- 十六进制:
Ox
为前缀 - 八进制:
O
为前缀
浮点Float
-
带有小数部分,或者是指数形式
-
示例代码如下
<?php $x=2.4e3; $x=3E-5; ?>
布尔Boolean
- 值为TRUE或FALSE
- 常用于条件判断
数组Array
-
在一个变量中存储多个值
-
示例代码如下
<?php $lunch=array("rice","noodles"); ?>
对象Object
-
可以用于存储数据
-
对象必须声明
- 使用class关键字声明类对象
- 类:一种结构
- 属性
- 方法
- 类之后无需分号,与C++不同
- this: 指向当前对象实例的指针
-
代码示例
<?php class Lunch { var $type; function __construct($type="rice") { $this->type=type; } function what_lunch_type() { return $this->type; } } ?>
空值NULL
- 表示变量没有值
- 可以通过设置变量值为
NULL
来清空变量数据
数据类型输出函数
-
var_dump()
函数:返回变量的数据类型,输出变量的值 -
代码示例
<?php $x=250; var_dump($x); echo "<br>"; ?>
资源resource
-
保存到外部资源的一个引用
-
通过专门的函数来建立和使用
-
代码示例
$handle=fopen("resource.txt","r");//这是一个文件资源类型的变量
类型转换
自动转换
-
在转换的变量前加上想要转换的类型名称
-
代码实例
echo (int) 1.1; //float->int 输出1 echo (float) '1.1'; //string -> float 输出1.1
强制转换
-
使用
settype()
函数 -
代码示例
$a=5.6; settype($a,'int'); echo $a; //输出5