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


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

    一、总结

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

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

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

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

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

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

    比如:BattlegroundMain会解析成battleground_main

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

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

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

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

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

    a、直接转换

     1 <script>
     2     var monster=new Object();
     3     monster.name="{$monster->name}";
     4     monster.grade="{$monster->grade}";
     5     monster.attrType="{$monster->attrType}";
     6     monster.type="{$monster->type}";
     7     monster.experience="{$monster->experience}";
     8     monster.money="{$monster->money}";
     9     monster.ur_hp_now="{$monster->attr['ur_hp_now']['a_value']}";
    10     monster.ur_mp_now="{$monster->attr['ur_mp_now']['a_value']}";
    11     monster.ur_anger_now="{$monster->attr['ur_anger_now']['a_value']}";
    12     monster.ur_hp="{$monster->attr['ur_hp']['a_value']}";
    13     monster.ur_mp="{$monster->attr['ur_mp']['a_value']}";
    14     monster.ur_anger="{$monster->attr['ur_anger']['a_value']}";
    15     for(x in monster){
    16         console.log(x+' '+monster[x]);
    17     }
    18 
    19 </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() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。

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

    下面代码即可:

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

    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")

    二、内容在总结中

     
  • 相关阅读:
    数据管理(五)
    (译文)Gentoo的前世今生 part3 (完成版※)
    数据管理(三)
    数据管理(一)
    数据管理(七)
    (译文)Gentoo的前世今生 PART 1(完成版)
    数据管理(六)
    数据管理(四)
    SQL Server补丁版本的检查和安装过程中常见问题
    3938 Portal(离线型的并查集)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9628658.html
Copyright © 2020-2023  润新知