PHP基本语法小结

基本语法

输出语句

语句 功能
echo 输出字符串类型
print_r 输出引用类型(对象,数组等)
var_dunp 检测变量类型

::: tip
echo语句可用于给前端返回响应体。比如前端通过ajax请求,可以在xhr.response中直接得到echo的内容
:::

变量&常量

👉🏼 变量

语句 功能 返回值
isset() 检测变量是否存在 boolean
unset() 删除某个变量 none

👉🏼 常量

常量用constdefine 定义,常量名一般全部大写,不受作用域的限制

::: tip

一般是define在类外定义常量,const在类内定义常量,并且const必须通过类名::变量名来进行访问。但是php5.3以上支持类外通过const定义常量。

:::

:::danger

const不能在条件语句中使用,必出错

:::

参考文章 《PHP中define() 与 const定义常量的区别详解》

三元表达式及@使用

省略写法

echo $name?:'NO';//输出本身的话,可以省略!

??的作用

①检测变量是否定义(isset) ②检测变量是否为空(is_null)

echo $name??'NO';//NO

@用来屏蔽错误

@(9/0)//不会报错

字符串相关函数

定界符

<<<开头,用相同字符串定义开头&结尾。

::: details

$temp=<<<tem
<h1 style="color: #e01">这是一段临时HTML模板</h1>
<h5 style="color: #00b3ff">hhc</h5>
<script>
document.querySelector("h5").addEventListener("mouseenter",function (){
    this.style.color="#000";
})
</script>
tem;

:::

字符串连接

.符号用来连接字符串

::: details

$str="fer.com";
echo $str."=>"."hhhhc";

:::

字符串长度
方法 参数 作用
strlen() [$str] 获得字符串长度,中文一个字两个字符!
mb_strlen() [$str,encoding] 指定编码格式获取长度,指定为utf8,中文一个字一个字符
字符串格式
方法 作用
trim() 去空格
strtoupper()&strtolower 大小写转换
ucfirst() 指定一段字符串首字母大写
ucwords($sentence,delimiters) 以delimiters为分割,首字母大写

::: details

$sentence="my name is jqf.let's go shopping!";
echo "<hr>";
echo ucwords($sentence,'.');//My name is jqf.Let's go shopping!

:::

与数组相互转化

explode(delimiter,$str) & implode(glue,$arr)

截取字符串

substr($str,start,len) & mb_substr($str,start,len,encoding),返回截取的字符串,原字符串不会发生改变

md5加密

::: theorem MD5
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

::: right
来自百度百科
:::

引入模块

方法 说明
include & include_once 弱引用,如果引入的文件不存在则会warning(可以用@屏蔽掉),但后续代码仍然执行
require & require_once 强引用,所引文件不存在则会报fatal mistake,后续不再执行

::: tip

include_once & require_once用来避免引入多次某个模块而造成的错误,具体如下

:::

::: details

//tools.php
<?php
function show(){
   
    return 'https://www.fintinger.xyz';
}
//1.php
<?php
include 'tools.php';
echo show();
//2.php
include_once "1.php";
include_once "tools.php";

2.php中引入了两次tools.php,通过include_once可以避免产生错误

:::

函数相关

点语法

类似于javascript,可以在函数传参数的时候实现"聚合"的效果

::: details

<?php
function sum(...$nums){
   
    print_r($nums);
    echo "<hr>";
    echo array_sum($nums);
}
sum(1,2,3,4,4,5,6,6,7,7,7,7);

:::

传址&传值

& 用来传址

严格模式

declare(strict_types=1);声明严格模式,严格模式下,如果约束了函数参数的类型,传入不是约束的值,会报错。

declare(strict_types=1);
function sum(int ...$nums){
   
    return array_sum($nums);
}

echo sum(1,2,3,4,'5');//Fatal error
php标准的函数
function show(int $var): string
{
   
    return 'hhc';
}//参数(php>5)和返回值(php>7)都有明确的类型约束
好用的变量函数!
$action="fn";
function fn(){
   
	//do something
}
$action()//即可调用fn函数

具体应用 :根据图片后缀设定对应处理函数

::: details

function png()
{
   
    return 'png fn running...';
}

function jpg()
{
   
    return 'ipg fn running...';
}

$file = 'logo.png';

$action = explode('.', $file)[1];

echo function_exists($action)
    ? $action()
    : '无法处理这种格式的图片!';

:::

数组相关

指针读取数组

current($arr)&next($arr) 操作数组指针,如果读取不到,current则为0

list()

list — 把数组中的值赋给一组变量。

$info = array('coffee', 'brown', 'caffeine');

// 列出所有变量
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";

::: tip

在 PHP 7.1.0 之前的版本,list() 仅能用于数字索引的数组,并假定数字索引从 0 开始。

:::

也就是说 PHP>7.1.0,list可以用来解构key=>value型数组了

::: details

$arr=[
    "age"=>"18",
    "name"=>"fin",
];
list("name"=>$name,"age"=>$age)=$arr;
echo $name;//fin

关于PHP中类似于ES6的对象解构赋值操作,有种更加稳妥方便的方式,那就是extract()

$arr=[
    "age"=>"18",
    "name"=>"fin",
];
extract($arr, EXTR_PREFIX_SAME, "wddx");//重复则覆盖,前缀为"wddx"
echo $name;//fin

:::

::: warning

PHP 5 里,list() 从最右边的参数开始赋值; PHP 7 里,list() 从最左边的参数开始赋值。

如果你用单纯的变量,不用担心这一点。 但是如果你用了具有索引的数组,通常你期望得到的结果和在 list() 中写的一样是从左到右的,但在 PHP 5 里实际上不是, 它是以相反顺序赋值的。

通常而言,不建议依赖于操作的顺序,在未来可能会再次发生修改。

:::

操作数组

foreach()遍历数组

foreach($arr $index=>$item){
   
    //可以获取索引和数组中的item
}

传址修改原数组

foreach ($arr as &$item){
   
    //do something(修改传址进来的数组元素)
}
数组增删操作
从末尾 array_push array_pop
从开始位置 array_unshift array_shift
其他方法(类似JS中)
/*遍历*/
array_map()
array_values()
array_keys()
array_filter()


/*判断*/
array_key_exists()
in_array()

/*合并*/
array_merge()//[originArr,newArr]
array_change_key_case() //修改key的大小写小:0/CASE_LOWER 大:1/CASE_UPPER

::: details

//递归实现多维数组key的大小写转换
<?php
$config = [
    "hOst" => "localhost",
    "POST" => 8000,
    "uSeR" => "admin",
    "cache" => [
        "hOst" => "127.0.0.1",
        "user" =>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Archai233

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值