legend---八、php对象如何转换成js对象

一、总结

一句话总结:a、直接转换;b、通过json对象做中间桥梁

1、为什么传递给父亲构造函数的参数不能写默认值?

这里的第三行的比如$type不能写成$type=60,因为这样的话第二行的$type=60没有了意义,而且也没办法从外部改变$type的值,也就是没办法从外部把$type的值传进来了。

 class MonsterGeneral extends Monster {
public function __construct($grade,$attrType,$type=60) {
parent::__construct($grade,$attrType,$type);
}
}

2、thinkphp中的类名中的下划线怎么使用?

不要在类名中用下滑线,因为php默认会把大写字母解析成下划线,你加了下划线它就找不到了

比如:BattlegroundMain会解析成battleground_main

所以如果你写成Battleground_main,系统就找不到了

所以要用的时候直接驼峰法用大写字母,不要用下滑线

3、php中如何保留两位小数?

 $num = 10.4567;

     //第一种:利用round()对浮点数进行四舍五入
echo round($num,2); //10.46 //第二种:利用sprintf格式化字符串
$format_num = sprintf("%.2f",$num);
echo $format_num; //10.46 //第三种:利用千位分组来格式化数字的函数number_format()
echo number_format($num, 2); //10.46
//或者如下
echo number_format($num, 2, '.', ''); //10/46

4、php对象如何转换成js对象?

a、直接转换

 <script>
var monster=new Object();
monster.name="{$monster->name}";
monster.grade="{$monster->grade}";
monster.attrType="{$monster->attrType}";
monster.type="{$monster->type}";
monster.experience="{$monster->experience}";
monster.money="{$monster->money}";
monster.ur_hp_now="{$monster->attr['ur_hp_now']['a_value']}";
monster.ur_mp_now="{$monster->attr['ur_mp_now']['a_value']}";
monster.ur_anger_now="{$monster->attr['ur_anger_now']['a_value']}";
monster.ur_hp="{$monster->attr['ur_hp']['a_value']}";
monster.ur_mp="{$monster->attr['ur_mp']['a_value']}";
monster.ur_anger="{$monster->attr['ur_anger']['a_value']}";
for(x in monster){
console.log(x+' '+monster[x]);
} </script>

b、通过json对象做中间桥梁

5、php对象如何转换成json对象?

PHP把一个对象转化成json字符串,而不是转成数组

参考:http://www.php.net/manual/en/function.json-encode.php

json_encode参数:http://php.net/manual/en/json.constants.php

方法:

$json_string = json_encode($object, JSON_FORCE_OBJECT);

区别:

json_encode($object);

//结果:"[{"aa":"bb","cc":"dd"}]"

json_encode($object,JSON_FORCE_OBJECT);

//结果:"{"aa":"bb","cc":"dd"}"

6、php 怎么将任意编码的内容转换成utf-8?

最简单的:
$str = iconv("gbk", "utf-8//ignore", $str);
或者:
$str = mb_convert_encoding($str, "utf-8", "gbk");

稍微解释一下 //ignore 的意思是转换不了的字符就忽略。建议把这个写上。否则遇到转换不了的字符会报错。gbk替换成你需要转换的编码就可以了。

7、php中json_encode方法的使用注意事项是什么?

json_encode — 对变量进行 JSON 编码

string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )

待编码的 value ,除了resource 类型之外,可以为任何数据类型。

所有字符串数据的编码必须是 UTF-8。

感觉手册中的例子都是转array的

Example #1 json_encode() 例子

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

echo json_encode($arr);
?>

8、php将数组键中的所有的*弄掉如何实现?

键值互换,

替换掉值中的*

键值互换

array(9) {
["*questions"] => NULL
["*grade"] => string(1) "1"
["*attrType"] => string(1) "3"
["*type"] => string(1) "1"

这样不行,因为

array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。

如果原数组中的值的数据类型不是字符串或整数,函数将报错。

下面代码即可:

 //去掉有protected属性造成的键值前面的*
foreach ($monster_handel as $key=>$val){dump($key);
$key2=str_replace("*","",$key);
$monster_handel[$key2]=$val;
unset($monster_handel[$key]);
}

9、php键值互换函数?

array_flip() 函数用于反转/交换数组中所有的键名以及它们关联的键值。

array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。

如果原数组中的值的数据类型不是字符串或整数,函数将报错。

10、\u0000是什么?

\u开头的是一个Unicode码的字符,每一个'\u0000'都代表了一个空格

11、php对象赋值不传引用如何实现?

对象复制可以通过 clone 关键字来完成

$monster_handel=clone $monster;

12、js如何创建数组?

定义数组

数组对象用来在单独的变量名中存储一系列的值。

我们使用关键词 new 来创建数组对象。下面的代码定义了一个名为 myArray 的数组对象:

var myArray=new Array()

有两种向数组赋值的方法(你可以添加任意多的值,就像你可以定义你需要的任意多的变量一样)。

1:

var mycars=new Array()
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"

也可以使用一个整数自变量来控制数组的容量:

var mycars=new Array(3)
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"

2:

var mycars=new Array("Saab","Volvo","BMW")

二、内容在总结中

 

legend---八、php对象如何转换成js对象的更多相关文章

  1. react中jsx文件是如何转换成js对象的

    通过在线babel转换器,转换出jsx是如何变成js对象的 jsx文件 加入了正常的标签以及嵌套标签以及方法属性 function hello() { click=()=>{ console.l ...

  2. html5中将图片的绝对路径转换成文件对象

    html5中将图片的绝对路径转换成文件对象 将图片的绝对路径转换成base64编码,请看这篇文章 我们先来理解基本知识点: 1. 理解HTML5中的FileList对象与file对象. 在HTML5中 ...

  3. jQuery、JS读取xml文件里的内容(JS先通过document.implementation.createDocument方法将xml转换成document对象,jQuery将读取到的xml转成table)

    xml文件:test.xml <?xml version="1.0"?> <note> <to>George</to> <fr ...

  4. JS 将对象转换成字符 字符串转换成json对象

    //js对象 var user = { "name": "张学友", "address": "中国香港" }; //将对 ...

  5. js中将json字符串转换成json对象

    在我们使用js请求后台控制器传回的结果result值的时候,经常会出现返回结果值为json字符串的情况,字符串无法在js中直接使用 返回样式栗子: 这是一个json字符串:result = " ...

  6. js中json字符串转成js对象

    json字符串转成js对象我所知的方法有2种: //json字符串转换成json对象 var str_json = "{name:'liuchuan'}"; //json字符串 / ...

  7. json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值

    一.json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式.采用完全独立于语言的文本格式,是一种理想的数据交换格式. 同时,json是jav ...

  8. Razor 将C#对象转换成Javascript对象, json还原被转码的字符 &quot·· HTML转义符

    Razor 将C#对象转换成Javascript对象 在Razor中使用Json字符串,特殊字符被自动转义(如:\"->") @{ var jsonStr = Html.Ra ...

  9. 05 HTML字符串转换成jQuery对象、绑定数据到元素上

    1 要求 将一段 HTML脚本 封装成一个字符串,将这个字符串转换成一个jQuery对象:然后将这个jQuery对象添加到指定的元素中去 2 步骤 定义字符串 var str = '<div i ...

随机推荐

  1. 洛谷——P2483 [SDOI2010]魔法猪学院

    https://www.luogu.org/problem/show?pid=2483 题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的 ...

  2. AJAX核心--XMLHttpRequest五步法

    引言: AJAX=异步Javascript + XML,AJAX是一种用于创建高速动态网页的技术. 开门见山: 解读:AJAX使用XHTML和CSS为网页表示.DOM动态显示和交互,XML进行数据交换 ...

  3. hdu1290

    由二维的切割问题可知,平面切割与线之间的交点有关,即交点决定射线和线段的条数,从而决定新增的区域数. 当有n-1个平面时,切割的空间数为f(n-1).要有最多的空间数.则第n个平面需与前n-1个平面相 ...

  4. bzoj4590: [Shoi2015]自动刷题机(二分答案)

    4590: [Shoi2015]自动刷题机 题目:传送门 题解: 很明显的一道二分题. 对于二分性的判断:如果n越大,那么AC的题就越少,n越小,AC的题就越多,那么最大最小值都满足单调性,直接瞎搞. ...

  5. nyoj--27--水池数目(dfs)

    水池数目 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地图上 ...

  6. ORACLE 索引批量重建

    按用户批量重建索引: 按用户将此用户下面非临时表上面的索引全部重建,此过程建议在SYS用户下面执行: CREATE OR REPLACE PROCEDURE BATCH_REBUILD_INDEX(U ...

  7. [JZOJ5166] [NOIP2017模拟6.26卢学魔] 解题报告 (记忆化搜索|拓扑排序)

    题目链接: http://172.16.0.132/senior/#main/show/5166 题目: 题解: 这个没什么好讲的,就是注意生产者没人吃也不是食物链,这告诉我们要积累生物知识注意细节 ...

  8. POJ 3213 矩阵乘法(优化)

    思路: 1.暴力出奇迹 n=1000 n^3矩阵乘法竟然能卡过...(Tips:不要乱写读入优化,这玩意儿加了超时,不加AC--) 2. 注意题目中的"最多只能有一个地方不一样,," ...

  9. select2多选

    在TCX_1710项目中的拒绝代码配置页面可以选择多个拒绝字段,效果图如下 代码中需要注意的有以下地方:图1为提交保存时对多选数据的获取,图2为修改是对多选数据的回显 对于多选框宽度太窄的问题,可以参 ...

  10. 向 wmware workstation pro 的 MS-DOS 操作系统中导入文件(masm debug edit)(详细图解)

    一般MS-DOS中不包含masm.debug和edit这三个程序. 我们想要把这几个文件导入到wmware workstation pro中的DOS虚拟机中怎么做呢? [尝试] 1.我试过用共享文件夹 ...