PHP 基本知识入门
1 php 是什么
- PHP: (PHP: Hypertext Preprocessor), 超文本预处理器的缩写
- PHP 是开源的,免费的,运行在服务端的,用来动态生成网页数据的脚本语言
- 所谓脚本语言,是指不需要编译,直接由解释器/虚拟机执行的编程语言
PHP 语法并不多,要对自己有信心
2. php 程序执行流程
- php 程序是用 php 指令编写并由 php 解析器执行的代码
- php 程序必须使用
.php
做为扩展名 php 程序可以使用标签方式嵌入到 html 文档中
请求的是 php 文件,服务器会解析成 html 代码返回浏览器
执行流程哪下:
- 客户端请求服务器端的 php 程序
- 服务器端将 php 程序转发给 php 解释器执行
- php 解释器执行完毕将生成的 html 或其它内容返回到服务器
- 服务器将最终生成的 html 代码做为响应内容返回客户端
3. php 集成运行环境
初学者推荐使用集成环境,省去手工逐一安装配置麻烦
序号 | 集成环境 | 操作系统 | 描述 |
---|---|---|---|
1 | phpStudy | Windows / Linux | 中文,免费,功能全, 推荐 |
2 | MAMP | MacOS | 英文,收费, 功能全, 推荐 |
4. php 程序文档
序号 | 组成 | 描述 |
---|---|---|
1 | <?php ... ?> |
PHP 代码标记 |
2 | ; 分号 |
语句分隔符,代码块使用右大括号 |
3 | 空白符 | 合理使用空白符可增强代码可读性 |
4 | 注释 | // 单行注释 , /* 多行注释 */ |
php 标记之外的内容会原样返回客户端,如 html 代码
php 代码可以写在 html 代码中的任何地方
<?php
// php程序文档基本结构
function sum(int $a, int $b) : int
{
return $a + $b;
}
echo sum(10, 20);
当 php 文档只有 php 内容时,结束标记?>请不要写,如果是嵌入 html 文档则需要
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<?php
// php程序文档基本结构
function sum(int $a, int $b) : string
{
return "$a + $b = " . ($a + $b);
}
echo sum(10, 20);
?>
</body>
</html>
5. 打印结果
序号 | 指令 | 描述 |
---|---|---|
1 | echo |
语言结构, 可查看多个变量 |
2 | print |
语言结构,功能与echo 类似,区别是有返回值 |
3 | print_r() |
函数,以更容易理解的格式打印变量信息,常用于数组 |
4 | var_dump() |
函数,可查看一个变量更多信息,如类型 |
5 | var_export() |
函数,输出或返回一个变量的字符串表示(源代码) |
实际工作中,
echo
和var_dump()
基本可以满足大多数需求
<?php
# php打印结果
# echo和print不是函数,他是语言结构,指令
$email = 'admin@php.edu';
//echo
echo $email, '<br>';
//echo没有返回值
echo print $email;
//print,有返回值,如果成功就是返回1(true)
echo '<hr>';
// var_dump():函数
// 函数必须用括号调用
var_dump($email);
//var_dump()不仅可以打印出来,还可以返回字符类型以及多少个字符
echo '<hr>';
var_export($email);
// var_export返回php代码,比如动态生成一个数组,创建一个文件
6. 变量命名
- 变量名区分大小写,但是函数不区分;
- 正确的变量必须使用\$作为起始符号;
- 变量名不允许使用数字开始;
- 正确写法 变量名:\$ + php 标识符
- 必须由以下三种字符组成:大小写的英文字母,下划线,数字,且不能以数字开始
<?php
# 变量命名
$username = 'admin';
$userName = 'peter zhu';
//变量名区分大小写,但是函数区分
echo $username, '<br>' , $userName, '<hr>';
//正确的变量必须使用$
$hello='php';
$123abc='php';
7. php 变量是弱类型
- php 没有变量声明的概念,它的类型由赋予他的值决定
<?php
# php变量是弱类型
$var=100;
var_dump($var);
echo '<hr>';
$var = 'hello';
var_dump($var);
//php没有变量声明的概念,它的类型由赋予他的值决定
echo '<hr>';
8. 变量的传递方式
- 值传递和引用传递
- 引用赋值,&:取地址符,引用符
- 相当于给原变量起了一个别名
<?php
//值传递和引用传递
//1.值传递
$price1 = 99;
// 当前只是将$price1变量的值赋值给了一个新的变量
$price2 = $price1;
echo $price1, '----', $price2, '<br>';
//更新
$price1 = 299;
echo $price1, '----', $price2, '<br>';
echo '<hr>';
//2.引用赋值
$price1 = 99;
//引用赋值,&:取地址符,引用符
//相当于给原变量起了一个别名
$price2 = &$price1;
echo $price1, '----', $price2, '<br>';
//更新
$price1 = 299;
echo $price1, '----', $price2, '<br>';
9. 可变变量
- 可变变量:变量的标识符可以动态的改变
- 数据表查询的时候需要动态的改变变量名,比如说图片处理,http 处理等等
<?php
# 可变变量:变量的标识符可以动态的改变
$var = 'email';
//变量名email恰好是变量var的值
// $email = 'admin@php.cn';
$$var='peter@php.cn';
echo $email;
10. 检测和删除一个变量
- 检测:
isset()
- 删除:
unset()
- 如果变量已经定义但是未赋值(初始化),默认用 NULL 进行赋值
- 初始化:第一次赋值
- 更新/修改:第二次赋值;
is_null()
判断是否没有赋值empty()
判断是否为空,但是有值
<?php
// error_reporting(E_ALL);
# 检测与删除
//echo $username;
if (isset($username)) echo $username, '<br>';
$username = 'zhu';
// echo $username . '<br>';
//变量删除或者销毁
unset($username);
if (isset($username)){
echo $username, '<br>';
}else{
echo '变量未定义';
}
echo '<hr>';
//如果变量已经定义但是未赋值(初始化),默认用NULL进行赋值
//初始化:第一次赋值
//更新/修改:第二次赋值;
$email;
$email = NULL;
var_dump(is_null($email));
echo '<hr>';
$var = '';
var_dump(empty($var));
11. 数据类型
- 基本类型:字符串(string),数值(整数,小数),布尔:true/false
- 复合类型:基础类型整合在一起
- 特殊类型
- 资源类型,文件
<?php
#数据类型
//1.基本类型
//字符串(string)
$name = '手机';
//数值(整数,小数)
$price = '3890';
//布尔:true/false
$is5G = 'true';
//2.复合类型
//整合在一起
//对象,->对象访问符
$obj = new stdClass;
$obj->email = 'admin.php.cn';
echo $obj->email . '<br>';
//数组
$arr = ['电脑',8000,'huawei'];
// print_r($arr);
$str=print_r($arr, true);
echo '<pre>'.$str.'</pre>';
// echo '<pre>'.print_r($arr, true).'</pre>';
//3.特殊类型
$num = null;
var_dump($num);
//4.资源类型,文件
$f=fopen('demo7.php','r');
var_dump($f);
if (gettype($f) === 'resource') {
echo 'demo7.php是一个文件';
}
12. 总结
php 语法并不多,需要对自己的学习有信心,客户端请求一个 php 程序(或者 url),服务器 php 解析器(如 php.exe)生成 html 返回给服务器,服务器再传送相应给客户端。浏览器并不能直接解析 php 文件。