# php 程序
## 1. php 是什么
- PHP: (PHP: Hypertext Preprocessor), 超文本預處理器的縮寫
- PHP 是開源的,免費的,運行在服務端的,用來動態生成網頁數據的腳本語言
- 所謂腳本語言,是指不需要編譯,直接由解釋器/虛擬機執行的編程語言
---
## 2. php 程序執行流程
- php 程序是用 php 指令編寫并由 php 解析器執行的代碼
- php 程序必須使用`.php`做為擴展名
- php 程序可以使用標簽方式嵌入到 html 文檔中

執行流程哪下:
1. 客戶端請求服務器端的 php 程序
2. 服務器端將 php 程序轉發給 php 解釋器執行
3. php 解釋器執行完畢將生成的 html 或其它內容返回到服務器
4. 服務器將最終生成的 html 代碼做為響應內容返回客戶端
---
## 3. php 集成運行環境
> 初學者推薦使用集成環境,省去手工逐一安裝配置麻煩
| 序號 | 集成環境 | 操作系統 | 描述 |
| ---- | -------- | --------------- | ----------------------- |
| 1 | phpStudy | Windows / Linux | 中文,免費,功能全, 推薦 |
| 2 | MAMP | MacOS | 英文,收費, 功能全, 推薦 |
---
## 4. php 程序文檔
| 序號 | 組成 | 描述 |
| ---- | -------------- | ------------------------------- |
| 1 | `<?php ... ?>` | PHP 代碼標記 |
| 2 | `;` 分號 | 語句分隔符,代碼塊使用右大括號 |
| 3 | 空白符 | 合理使用空白符可增強代碼可讀性 |
| 4 | 注釋 | `// 單行注釋`, `/* 多行注釋 */` |
> php 標記之外的內容會原樣返回客戶端,如 html 代碼
示例代碼: `demo1.php`
```php
<?php
/*
1. 功能: 求和
2. 參數: 整數
3. 返回: 整數
*/
function sum(int $a, int $b): int
{
// 返回結果
return $a + $b;
}
// 函數調用
echo sum(10, 20);
?>
```
---
## 5. 打印結果
| 序號 | 指令 | 描述 |
| ---- | -------------- | ---------------------------------------------- |
| 1 | `echo` | 語言結構, 可查看多個變量 |
| 2 | `print` | 語言結構,功能與`echo`類似,區別是有返回值 |
| 3 | `print_r()` | 函數,以更容易理解的格式打印變量信息,常用于數組 |
| 4 | `var_dump()` | 函數,可查看一個變量更多信息,如類型 |
| 5 | `var_export()` | 函數,輸出或返回一個變量的字符串表示(源代碼) |
> 實際工作中, `echo`和`var_dump()`基本可以滿足大多數需求
示例代碼: `demo2.php`
```php
<?php
# php打印結果
$email = 'admin@php.cn';
echo $email, '<br>';
echo print $email;
echo '<br>';
var_dump($email);
echo '<br>';
var_export($email);
/* 運行結果
admin@php.cn
admin@php.cn1
string(12) "admin@php.cn"
'admin@php.cn'
*/
```