lxl-php第二天

### 数据类型
---
+ int
+ float
+ bool
+ strig
+ null
+ array
+ object
+ resource
###单引号 双引号
---
- ' ' 最外层只要是单引号,里面的东西会原样输出
- " " 最外层只要是双引号,里面的东西会解析
- 转意符 想要解析,也要用双引号
+ \n 换行
+ \r 回车
+ \t 制表
+ \"
+ \'
###php 创建数组 遍历数组
---
- 索引数组
```php
$arr = ['one','two'];
```
+ 索引数组遍历的方法 for 和 foreach
```php
$arr = ['one','two'];
for ($i = 0;$i < count($arr); $i++) {
echo $arr[$i];
}
```
```php
$arr = ['one','two'];
foreach($arr as $key => $value){
echo $key .' '.$value
}
```
- 关联数组
```php
$arr = ['name'=>'小明','age'=>'18'];
$arr = array('name' => '小明','age'=>'18');
```
+ 关联数组的遍历方式
```php
$arr = ['name'=>'小明','age'=>'18'];
foreach($arr as $key => $value){
echo $key .''.$value
}
```
- 混合数组
```php
$arr=[2,3,4,'name'=>'jake',5]
```
- 二维数组
```php
$arr = [['name','age'],['a','b'.'c']]//嵌套两层
```
- [ 水果案例链接]( ../fruit/fruit.php)
```php
$data = [
["id" => 1, "name" => "香蕉", "src" => "img/banana1.jpg"],
["id" => 2, "name" => "苹果", "src" => "img/apple1.jpg"],
["id" => 3, "name" => "橙⼦", "src" => "img/orange1.jpg"],
["id" => 4, "name" => "菠萝", "src" => "img/pineapple1.jpg"]
];
<?php foreach($data as $key => $value) : ?>
< li>
< img src= " <?php echo $value['src'] ?> " alt= "">
< a href= " # "><?php echo $value['name'] ?> </ a>
</ li>
<?php endforeach ?>
```
- php数组中push
```php
$arr[] = 10; // 创建了一个数组,名字叫arr 并追加了一项 10 到数组中
```

### html php的混写
---
```php
<?php if (true) { ?>
< h3>登录</ h3>
<?php }else { ?>
< h3>退出</ h3>
<?php } ?>
```
### 函数的声明与使用特点
---
- 声明(与js中一致)
```php
function fn() {
}
```
- php 中函数的内部无法访问外部的成员 ,可以使用 global 或者 $GLOBALS 来引用全局变量(不推荐)
```php
$a = 100;
funtion fn() {
// echo $a 调用函数 无法输出,因为函数内部无法访问外部的成员$a
echo $GLOBALS['a'];//调用函数外部变量的方法 []中的变量不用加$符号
}
fn()
```
### 超全局变量
---
- $GLOBALS 保存了所有的全局变量, 类似js中的window对象
- \.\.\.
### 常量
---
- 常量的定义
+ define(常量名,常量值,false/true)
+ false 默认值,区分大小写 true 不区分大小写
```php
define('PI',3.14)
```
- 魔术常量
+ \_\_LINE \_\_ 获取当前的行数
+ \_\_FILE \_\_ 获取当前文件的路径
+ \_\_DIR \_\_ 获取当前文件所在的目录
+ \_\_FUNCTION \_\_ 获取当前的函数名称
- 预定义常量
+ PHP _INT_MAX php中的最大值
### 文件载入
---
- include 可以载入多次,遇到错误,后面代码继续执行
- require 可以多次载入,遇到错误,后面代码不执行
- include_once 载入一次 遇到错误 继续执行
- require_once 载入一次 遇到错误 不在执行
### 时间处理函数
---
- time() 时间戳 单位是秒
- strtotime() 把时间转换成时间戳
- date('Y-m-d H:i:s') 年月日 时分秒 如果要改时区,修改配置文件-date.timezone= PRC 或者Asia/shanghai
```php
// 打印明天的时间
strtotime('+ 1 day');
//昨天的时间
strtotime('-1 day')
//5小时后
strtotime('+5 hours')
```
### 字符串函数
---
- strlen(str) 获取字符串的长度
无法正确处理中文字符 utf-8 每个字符占3个字节
- mb_strlen(str,编码)
可以处理中文字符,没有设置编码就按照当前php默认的编码
要使用这个函数,需打开php_mbstring.dll . 能否使用也与当前php版本也有关系
- trim() 去除左右的空格
- explode() 将字符串分成数组 类似js中的split
```php
$str = 'a,b,cd';
$arr = explode(',',$str)// [a,b,cd]
//用, 分割成数组
```
- substr() 截取字符串 类似js的slice
- strpos() 类似js 中 index of
- strrpos() 类似js 中 last index of
- strrchr() 取出文件名的拓展名
```php
<!-- "wfe23r23svwefwef.png" -->
strrchr(文件名,'.')// 会取出png
```
### 补充函数
---
- 数学函数
+ max
+ min
+ floor
+ ceil
+ rand 随机数
- 数组相关
+ array_splice()
1.删除
```php
$arr = [2,3,4,5,6];
array_splice($arr,2,3) //从下标2(包括下标为2的)开始,删除3项
```
2.插入
```php
$arr = [2,3,4,5,6];
array_splice($arr,2,0,7)//从下标为2的前面插入一项 值为 7 的项
array_splice($arr,2,0,[7,8,9])//从下标为2的前面插入一项 [7,8,9]
```
3.替换
```php
$arr= [2,3,4,5,6];
array_splice($arr,2,3,[6,7,8])//从下标为2(包括下标为2 的那项)开始把后3项替换成[6,7,8]
```
+ array_slice() 截取
```php
$arr = [2,3,4,5,6];
$arr1 = array_slice($arr,2)//[4,5,6]
//从下标为2 开始截取 后面的 组成一个新的数组
```
```php
$arr = [2,3,4,5,6,7,8];
$arr1 = array_slice($arr,2,4)//[5,6,7,8]
//从下标为2 的开始(不包含第2项) 向后截取4项
```
+ in_array() 判断一个值是否在这个数组中
+ implode() 把数组元素组合成字符串 类似js中join方法
```php
$arr = [23,45,6];
$str = implode('|',$arr);//23|45|6
// 用 | 组成一个字符串
```
- 其他函数
+ parse_url
+ uniqid 随机生成一个唯一的id
+ exit() 中止代码
+ die() 中止代码



猜你喜欢

转载自blog.csdn.net/qq_42341025/article/details/80503931