## :-: 一、`php` 语法
### 1、语言标记
* 开始标记 `<?php` 和 结束标记 `?>` 中间写 `PHP` 代码
```php
<?php
?>
```
### 2、`echo` 输出
```php
<?php
echo 'Hello World!';
?>
```
### 3、`php` 嵌入到 `HTML` 中
* 可以嵌入多个 `PHP` 标记
```php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php echo '我是欧阳克'; ?>
<?php echo '我是黄蓉'; ?>
</body>
</html>
```
### 4、语句结束符 `;`
---
## :-: 二、php注释
* `php` 执行会跳过注释
* 注释更方便的理解代码
```php
# php中的单行注释
// php中的单行注释
/*
* php中的多行注释
*/
/*
_oo8oo_
o8888888o
88" . "88
(| -_- |)
0\ = /0
___/'==='\___
.' \\| |// '.
/ \\||| : |||// \
/ _||||| -:- |||||_ \
| | \\\ - /// | |
| \_| ''\---/'' |_/ |
\ .-\__ '-' __/-. /
___'. .' /--.--\ '. .'___
."" '< '.___\_<|>_/___.' >' "".
| | : `- \`.:`\ _ /`:.`/ -` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
=====`-.____`.___ \_____/ ___.`____.-`=====
`=---=`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
佛祖保佑 永无bug
*/
```
---
## :-: 三、`php` 变量
### 1、声明变量
```php
<?php
$a = '欧阳克';
echo $a;
?>
```
### 2、变量命名规则
* 开头不能用数字
* 中间不能有空格
```php
<?php
# 下划线命名法
$my_name = '欧阳克';
echo $my_name;
echo '<hr>';
# 小驼峰命名法
$myName = '黄蓉';
echo $myName;
echo '<hr>';
# 大驼峰命名法
$MyName = '郭靖';
echo $MyName;
?>
```
### 3、引号作用
* 单引号里面是文本
* 双引号里面可以是文本和变量
```php
<?php
$php = '我是"欧阳克"!';
echo $php;
echo '<hr>';
$php = "我是'欧阳克'!";
echo $php;
echo '<hr>';
$name = '欧阳克';
$php = "我是{$name}!";
echo $php;
echo '<hr>';
?>
```
### 4、转移字符 `\`
```php
# 如果有重复引号,需要在引号前增加转移字符
$php = "我是\"欧阳克\"!";
echo $php;
echo '<hr>';
$php = "\\";
echo $php;
```
---
## :-: 四、`php` 常量
* 常量声明后,不允许改变
* 有效的常量名以字符或下划线开头
```php
define('SITE_SUFFIX','www.xx.com');
echo SITE_SUFFIX;
echo '<hr>';
define('OUYANGKE','欧阳克');
echo OUYANGKE;
```
---
## :-: 五、`php` 数据类型
**类型**|**描述**
---|---
布尔型 `Boolean`|`true` 和 `false`
整型 `Integer`|0 - 无限大
浮点型 `Float`|带小数的数字
字符串 `String`|汉字、英文、符合、其它国家语言
数组 `Array`|数组可以在一个变量中存储多个值
对象 `Object`|对象数据类型也可以用于存储数据
空值 `NULL`|表示变量没有值
> echo 输出数据值,开发时使用
> var_dump 可以打印数据类型和值,测试时使用
### 1、布尔型
* 布尔型通常用于条件判断
```php
<?php
$x = true;
var_dump($x);
echo '<hr>';
$y = false;
var_dump($y);
?>
```
### 2、整型
* 整数不能包含逗号或空格
* 整数是没有小数点的
* 整数可以是正数或负数
* 整型可以用三种格式来指定:十进制、十六进制、八进制
```php
<?php
$number = 0;
var_dump($number);
echo '<hr>';
$number = 67;
var_dump($number);
echo '<hr>';
$number = -322;
var_dump($number);
?>
```
### 3、浮点型
* 带小数部分的数字
```php
<?php
$number = 10.03;
var_dump($number);
echo '<hr>';
$number = -88.23;
var_dump($number);
?>
```
### 4、字符串
```php
<?php
$str = '我是欧阳克';
var_dump($str);
echo '<hr>';
$str = 'My name is ou yang ke';
var_dump($str);
?>
```
### 5、NULL
* NULL 值表示变量没有值
```php
<?php
$null;
var_dump($null);
echo '<hr>';
$null = '';
var_dump($null);
echo '<hr>';
$null = null;
var_dump($null);
?>
```
> 备:数组和对象,比较复杂,后面的课程会单独讲
---
## :-: 六、`php` 函数
* `php` 自带的一些功能方法,叫函数
* `php` 拥有1000多个内建的函数函数
**函数**|**描述**
---|---
`is_bool()`|判断是否是布尔型
`is_int()`|判断是否是整型
`is_float()`|判断是否是浮点型
`is_string()`|判断是否是字符串
`is_null()`|判断是否是为空
`isset()`|判断变量是否有值
`empty()`|判断变量是否为空
`unset()`|释放变量
### 1、`is_bool` 判断是否是布尔型
```php
<?php
$bool = true;
var_dump(is_bool($bool));
echo '<hr>';
$bool = false;
var_dump(is_bool($bool));
echo '<hr>';
$bool = 33;
var_dump(is_bool($bool));
echo '<hr>';
$bool = '欧阳克';
var_dump(is_bool($bool));
echo '<hr>';
?>
```
### 2、`is_int` 判断是否是整型
```php
<?php
$bool = true;
var_dump(is_int($bool));
echo '<hr>';
$bool = 33;
var_dump(is_int($bool));
echo '<hr>';
$bool = '欧阳克';
var_dump(is_int($bool));
echo '<hr>';
?>
```
### 3、`is_float` 判断是否是浮点型
```php
<?php
$bool = true;
var_dump(is_float($bool));
echo '<hr>';
$bool = 33;
var_dump(is_float($bool));
echo '<hr>';
$bool = '欧阳克';
var_dump(is_float($bool));
echo '<hr>';
$bool = 22.22;
var_dump(is_float($bool));
echo '<hr>';
?>
```
### 4、`is_string` 判断是否是字符串
```php
<?php
$bool = true;
var_dump(is_string($bool));
echo '<hr>';
$bool = 33;
var_dump(is_string($bool));
echo '<hr>';
$bool = '欧阳克';
var_dump(is_string($bool));
echo '<hr>';
$bool = 22.22;
var_dump(is_string($bool));
echo '<hr>';
?>
```
### 5、`is_null` 判断是否是为空
```php
<?php
$str = null;
var_dump(is_null($str));
echo '<hr>';
$str = '欧阳克';
var_dump(is_null($str));
echo '<hr>';
$str = 0;
var_dump(is_null($str));
echo '<hr>';
?>
```
### 6、`isset` 判断变量是否有值
```php
<?php
var_dump(isset($str));
echo '<hr>';
$str = null;
var_dump(isset($str));
echo '<hr>';
$str = 'null';
var_dump(isset($str));
echo '<hr>';
$str = '';
var_dump(isset($str));
echo '<hr>';
$str = 0;
var_dump(isset($str));
?>
```
### 7、`empty` 判断变量是否为空
```php
<?php
var_dump(empty($str));
echo '<hr>';
$str = null;
var_dump(empty($str));
echo '<hr>';
$str = 'null';
var_dump(empty($str));
echo '<hr>';
$str = '';
var_dump(empty($str));
echo '<hr>';
$str = 0;
var_dump(empty($str));
?>
```
### 8、`unset` 释放变量
```php
<?php
$str = '欧阳克';
unset($str);
var_dump($str);
echo '<hr>';
?>
```
---
## :-: 七、`php` 运算符
**运算符**|**描述**
---|---
`+`|相加
`-`|相减
`*`|相乘
`/`|相除
`%`|取余
`++`|加加
`--`|减减
`.`|连接、用在字符串
> 示例:
```php
$int1 = 100;
$int2 = 30;
var_dump( $int1 + $int2 );
echo '<hr>';
var_dump( $int1 - $int2 );
echo '<hr>';
var_dump( $int1 * $int2 );
echo '<hr>';
var_dump( $int1 / $int2 );
echo '<hr>';
var_dump( $int1 % $int2 );
echo '<hr>';
var_dump( $int1++ );
echo '<hr>';
var_dump( $int1-- );
echo '<hr>';
var_dump( ++$int2 );
echo '<hr>';
var_dump( --$int2 );
echo '<hr>';
var_dump( $int1 . $int2 );
echo '<hr>';
$var1 = '欧阳克';
$var2 = '18岁';
var_dump( $var1 . $var2 );
//两个变量连接,没问题
//一个变量和字符串,没问题
//一个变量连接整型,必须在整型前面增加空格
```
---
## :-: 八、`php` 赋值运算符
**运算符**|**描述**
---|---
`=`|赋值
`+=`|先加,后赋值
`-=`|先减,后赋值
`*=`|先乘,后赋值
`/=`|先除,后赋值
`%=`|先取余,后赋值
`.=`|先连接,后赋值
> 示例:
```php
$int = 100;
var_dump($int);
echo '<hr>';
$int += 30;
var_dump( $int );
echo '<hr>';
$int = $int + 30;
var_dump( $int );
echo '<hr>';
$int -= 30;
var_dump( $int );
echo '<hr>';
$int *= 30;
var_dump( $int );
echo '<hr>';
$int /= 30;
var_dump( $int );
echo '<hr>';
$int %= 30;
var_dump( $int );
echo '<hr>';
$int .= 30;
var_dump( $int );
```
---
### 九、`php` 比较运算符
**运算符**|**描述**
---|---
`>`|大于
`>=`|大于等于
`<`|小于
`<=`|小于等于
`==`|等于
`!=`|不等于
`===`|恒等于
`!==`|恒不等
### 1、`>` 大于
```php
var_dump( 100 > 100 );
echo '<hr>';
var_dump( 100 > 90 );
echo '<hr>';
var_dump( 100 > 110 );
echo '<hr>';
var_dump( true > false );
echo '<hr>';
var_dump( 'php' > 'php' );
echo '<hr>';
```
### 2、`>=` 大于等于
```php
var_dump( 100 >= 100 );
echo '<hr>';
var_dump( 100 >= 90 );
echo '<hr>';
var_dump( 100 >= 110 );
echo '<hr>';
var_dump( true >= false );
echo '<hr>';
var_dump( 'php' >= 'php' );
echo '<hr>';
```
### 3、`<` 小于
```php
var_dump( 100 < 100 );
echo '<hr>';
var_dump( 100 < 90 );
echo '<hr>';
var_dump( 100 < 110 );
echo '<hr>';
var_dump( true < false );
echo '<hr>';
var_dump( 'php' < 'php' );
echo '<hr>';
```
### 4、`<=` 小于等于
```php
var_dump( 100 <= 100);
echo '<hr>';
var_dump( 100 <= 90);
echo '<hr>';
var_dump( 100 <= 110);
echo '<hr>';
var_dump( true <= false);
echo '<hr>';
var_dump( 'php' <= 'php' );
echo '<hr>';
```
### 5、`==` 等于
```php
var_dump( 100 == 100 );
echo '<hr>';
var_dump( true == 'true' );
echo '<hr>';
```
### 6、`!=` 不等于
```php
var_dump( 100 != 100 );
echo '<hr>';
var_dump( true != 'true' );
echo '<hr>';
```
### 7、`===` 恒等于
```php
var_dump( 100 === 100 );
echo '<hr>';
var_dump( true === 'true' );
echo '<hr>';
```
#### 8、`!==` 恒不等
```php
var_dump( 100 !== 100 );
echo '<hr>';
var_dump( true !== 'true' );
echo '<hr>';
```
---
## :-: 十、`php` 逻辑运算符
**运算符**|**描述**
---|---
`and` 和 `&&`|与
`or` 和 `||`|或
`xor`|异或
`!`|非
### 1、`and` 和 `&&`
```php
//两个真,返回真。有一个是假,返回假。
var_dump( 100 && 30 );
echo '<hr/>';
var_dump( true && true );
echo '<hr/>';
var_dump( true and false );
echo '<hr/>';
var_dump( false and false );
echo '<hr/>';
```
### 2、`or` 和 `||`
```php
//一个真,返回真。两个真,返回真。两个假,返回假。
var_dump( 100 || 30 );
echo '<hr/>';
var_dump( true || true );
echo '<hr/>';
var_dump( true or false );
echo '<hr/>';
var_dump( false or false );
echo '<hr/>';
```
### 3、`xor`
```php
//一个真、返回真。两个真,返回假。两个假,也返回假。
var_dump( 0 xor 1 );
echo '<hr/>';
var_dump( true xor true );
echo '<hr/>';
var_dump( true xor false );
echo '<hr/>';
var_dump( false xor false );
echo '<hr/>';
```
### 4、`!`
```php
//一个真、返回真。两个真,返回假。两个假,也返回假。
var_dump( !0);
echo '<hr/>';
var_dump( !true );
echo '<hr/>';
var_dump( !false );
echo '<hr/>';
var_dump( !1 );
echo '<hr/>';
```