PHP 笔记

调用php数组中的某个元素

// 调用php数组中的某个元素,可直接使用 ->
$entityForm = new EntityForm($entityList,'1');  //得到数组

if($entityForm->entityType == 1){
    $NodeList[] = $entityForm;
}

解码JSON数据

PHP关于 对JSON数据进行解码,转换为PHP变量(json_decode), 判断转换后的PHP变量中是否存在某个值( isset( )),PHP变量获取数组中的某个值

<?php
$iconObj = \Yii::$app->session->get('user[iconUrl]');
$jsonIconUrl = json_decode($iconObj);
//存在头像url返回json {"urls":[{"bigUrl":"...","originUrl":"...","smallUrl":"...","uuid":"..."}]}情况
if(isset($jsonIconUrl->urls)){
    $iconUrl = $jsonIconUrl->urls[0]->smallUrl;
}else{
    //正常url路径情况下
    $iconUrl = $iconObj;
}

补充:

  • 语法:json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
  • 注意:
  1. $json 为待解码的数据,必须为utf8编码的数据;
  2. $assoc 值为TRUE时返回数组,FALSE时返回对象;
  3. $depth 为递归深度;
  4. $option 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING;
  5. 一般只用前面两个参数,如果要数据类型的数据要加一个参数true。

json_decode参数有加true,为数组,调用可用 变量名[];没有加true,则为对象,调用需用 变量 -> 子变量名。

参考文章: PHP中json_encode与json_decode

PHP的判空

isset :
如果 变量 存在(非NULL),则返回 TRUE,否则返回 FALSE(包括未定义)
变量值设置为:null,返回也是false;
unset一个变量后,变量被取消了。
注:isset对于NULL值变量,特殊处理。

is_null:
检测传入值【值,变量,表达式】是否是null,只有一个变量定义了,且它的值是null,它才返回TRUE ; 其它都返回 FALSE 【未定义变量传入后会出错!

故:使用isset()方法会更好些。


若报错:PHP“Cannot use object of type stdClass as array”
主要原因是 json_decode()方法没加true,不是数组,但却用数组方式调用内元素
参考文章: PHP“Cannot use object of type stdClass as array”

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容