php\thinkphp 常用小技巧(持续更新)

本文介绍了PHP中的json_encode和json_decode函数,展示了如何编码和解码JSON数据,并详细讲解了ThinkPHP模板中使用函数、默认值输出和运算符的方法。此外,还涉及了时间戳处理和模板语法实例。

一、简写

1、 c=a>b ? true:false 

意思是: 如果a>b 为真 则返回真,否则返回假(当然可以用语句替换),并且把结果返回给c。

2、c = a ?? b

表示如果a非空,则c = a,如果a为空,则 c = b。

二、数据转换

1.json_encode

PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。

语法

string json_encode ( $value [, $options = 0 ] )

参数

  • value: 要编码的值。该函数只对 UTF-8 编码的数据有效。
  • options:由以下常量组成的二进制掩码 JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。

    要注意的是 JSON_UNESCAPED_UNICODE 选项,如果我们不希望中文被编码,可以添加该选项。

实例

以下实例演示了如何将 PHP 数组转换为 JSON 格式数据:

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
?>

以上代码执行结果为:

{"a":1,"b":2,"c":3,"d":4,"e":5}

2.json_decode

PHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。

语法

mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

参数

  • json_string: 待解码的 JSON 字符串,必须是 UTF-8 编码数据

  • assoc: 当该参数为 TRUE 时,将返回数组,FALSE 时返回对象。

  • depth: 整数类型的参数,它指定递归深度

  • options: 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING 。

实例

以下实例演示了如何解码 JSON 数据:

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>

以上代码执行结果为:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

(转载自菜鸟教程)

3.时间戳

获取当前时间

<?php
var_dump(time()); //获取当前时间戳 int(1502245603)

时间戳转换为时间,可以用date(‘Y-m-s h:i:s’, 具体时间戳来实现).

Y :年(四位数)大写 
m : 月(两位数,首位不足补0) 小写 
d :日(两位数,首位不足补0) 小写 
H:小时 带有首位零的 24 小时小时格式 
h :小时 带有首位零的 12 小时小时格式 
i :带有首位零的分钟 
s :带有首位零的秒(00 -59) 
a:小写的午前和午后(am 或 pm)

$time = date('Y-m-s h:i:s',time());

三、thinkPHP模板使用(转载)

六、使用函数

1.使用函数显示:

{$data.name|md5}
编译后的结果是:

<?php echo (md5($data['name']));?>
 

2.如果函数有多个参数需要调用,则使用:

{$create_time | data="y-m-d",###}
表示date函数传入两个参数,每个参数用逗号分割,这里第一个参数是y-m-d,第二个参数是前面要输出的create_time变量,因为该哦变量是第二个参数,因此需要用###标示变量位置,编译后的结果是:

<?php echo (date('y-m-d',$create_time));?>
 

3.如果前面输出的变量在后面定义的函数的第一个参数,则可以直接使用:

{$data.name | substr=0,3}
表示输出

<?php echo (substr($data['name'],0,3)); ?>
也可以使用:

{$data.name|substr=###,0,3}  (没有这个必要)

4.还可以支持多个函数过滤,多个函数之间用"|"分割即可,例如:

{$name|md5|strtoupper|substr=0,3}
编译后的结果是:

<?php echo (substr(strtoupper(md5($name)),0,3));?>
函数会按照从左到右的顺序依次调用

还可以直接这样写:

{:substr(strtoupper(md5($name)),0,3)}
 

七、默认值输出

1.可以给变量输出提供默认值,eg:

{$user.nickname|default="这家伙很懒,什么也没留下"}
2.对系统变量也可以支持默认值输出,eg:

{$Think.get.name|default="名称为空"}
 

八、使用运算符

对于模板的输出使用运算符,包括对 "+" "-" "*" "/" "%"的支持

注:在使用运算符的时候,不再支持点语法和常规的函数用法

{$user.age+10}   //页面会不显示
{$user['age']+10}  //会正常的进行运算
 
————————————————
版权声明:本文为优快云博主「amy889」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/amy889/article/details/84692584

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值