php 程序
1. php 是什么
- PHP: (PHP: Hypertext Preprocessor), 超文本预处理器的缩写
- PHP 是开源的,免费的,运行在服务端的,用来动态生成网页数据的脚本语言
- 所谓脚本语言,是指不需要编译,直接由解释器/虚拟机执行的编程语言
2. php 程序执行流程
- php 程序是用 php 指令编写并由 php 解析器执行的代码
- php 程序必须使用
.php
做为扩展名 - php 程序可以使用标签方式嵌入到 html 文档中
执行流程哪下:
- 客户端请求服务器端的 php 程序
- 服务器端将 php 程序转发给 php 解释器执行
- php 解释器执行完毕将生成的 html 或其它内容返回到服务器
- 服务器将最终生成的 html 代码做为响应内容返回客户端
3. php 集成运行环境
初学者推荐使用集成环境,省去手工逐一安装配置麻烦
集成环境 | 操作系统 | 描述 |
---|---|---|
phpStudy | Windows / Linux | 中文,免费,功能全, 推荐 |
MAMP | MacOS | 英文,收费, 功能全, 推荐 |
4. php 程序文档
组成 | 描述 |
---|---|
<?php ... ?> |
PHP 代码标记 |
; 分号 |
语句分隔符,代码块使用右大括号 |
空白符 | 合理使用空白符可增强代码可读性 |
注释 | // 单行注释 , /* 多行注释 */ |
<?php
// php程序文档
function sum(int $a, int $b): string
{
return "$a +$b = " . ($a + $b);
}
echo sum(5, 5);
echo '<hr>';
# php 打印结果
$email = 'admin@qq.com';
//echo,没有返回值
echo $email . '<br>';
//print,有返回值,成功返回1
print $email . '<br>';
echo print $email;
echo '<hr>';
//var_dump():函数
var_dump($email);
echo '<hr>';
//var_export():函数
var_export($email);
?>
- 预览效果
php 标记之外的内容会原样返回客户端,如 html 代码
5. 打印结果
指令 | 描述 |
---|---|
echo |
语言结构, 可查看多个变量 |
print |
语言结构,功能与echo 类似,区别是有返回值 |
print_r() |
函数,以更容易理解的格式打印变量信息,常用于数组 |
var_dump() |
函数,可查看一个变量更多信息,如类型 |
var_export() |
函数,输出或返回一个变量的字符串表示(源代码) |
实际工作中,
echo
和var_dump()
基本可以满足大多数需求
php变量
- 变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。
- PHP 变量规则:
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
<?php
# 变量命名
$username = 'admin';
$userName = 'xiaoming';
//变量名区分大小写
echo $username . '<br>' . $userName . '<hr>';
//没有使用$开始,正确的变量比喻使用$作为起始符号
//hello= 'php';
//变量名中不允许使用数字开始
//$123abc='php';
//变量名中使用了特殊符号
//$user@id = 100;
//变量名: $ + php 标识符
//php有效标识符
//必须由以下三种字符组成:大小写的英文字母,下划线,数字。且不能以数字开始
//正确但无意义
$aaa = 'php.cn';
$_ = 888;
echo $_;
$_123 = 999;
echo $_123;
?>
php是一门弱类型语言
- 在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
- PHP 会根据变量的值,自动把变量转换为正确的数据类型。
- 在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
值 传递 和 引用传递
<?php
//值传递
$price1 = 99;
$price2 = $price1;
echo $price1, '----', $price2, '<br>';
//更新
$price1 = 299;
echo $price1, '----', $price2, '<br>';
echo '<hr>';
// 引用传递
$price1 = 99;
//引用赋值,& :取地址符,引用符
//相当于给原变量起一个别名
$price2 = &$price1;
echo $price1, '----', $price2, '<br>';
//更新
$price1 = 299;
echo $price1, '----', $price2, '<br>';
?>
- 预览效果
可变变量
<?php
# 可变变量: 变量的标识符/变量名称,可以动态的改变, 变量名可以来自另一个变量
$var = 'email';
//变量名email,恰巧是变量$var的值
$email = 'php@php.cn';
echo $email;
echo '<hr>';
$var2 = 'email2';
$$var2 = 'php@php.cn';
echo $email2;
?>
- 预览效果
<?php
// error_reporting(E_ALL);
# 检测与删除变量
// echo $username;
if (isset($username)) echo $username, '<br>';
$username = '22';
//变量删除/销毁
unset($username);
echo $username . '<br>';
if (isset($username)) : echo $username, '<br>';
else :
echo '变量未定义';
endif;
echo '<hr>';
$email;
var_dump($email);
var_dump(is_null($email));
echo '<hr>';
$var = '';
var_dump(is_null($var));
var_dump(empty($var));
?>
<?php
#数据类型
//基本类型
//字符串:string
$name = '手机';
//数值:int,float
$price = 3000;
//布尔:true/flase
$is5g = true;
// 复合类型
//对象
$obj = new stdClass;
$obj->email = 'php@php.cn';
echo $obj->email . '<br>';
//数组
$arr = ['电脑', '8888', 'huawei'];
// $str = print_r($arr, true);
// echo '<pre>' . $str . '</pre>';
echo '<pre>' . print_r($arr, true) . '</pre>';
// 特殊类型
$num = null;
var_dump($num);
//资源类型,文件
$f = fopen('text.php', 'r');
var_dump($f);
echo gettype($f) . '<br>';
if (gettype($f) === 'resource') {
echo 'text.php是一个文件';
}
?>
- 预览效果
总结
- 接触php,了解echo,print,变量命名,值得传递和引用传递,变量,数据类型和检测与删除变量等多种语法,需要多多练习,加强记忆。