调用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 ]]])
- 注意:
- $json 为待解码的数据,必须为utf8编码的数据;
- $assoc 值为TRUE时返回数组,FALSE时返回对象;
- $depth 为递归深度;
- $option 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING;
- 一般只用前面两个参数,如果要数据类型的数据要加一个参数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”