javascript與php類型轉(zhuǎn)換類

一、javascript:

  1. 代碼:
    /**
    * 類型轉(zhuǎn)換類
    * @author [lee] <[<www.dollarphp.com>]>
    */
    function translation(data){
    this.data = new Array()
    this.info = new Array()
    this.init = function(){
        this.data = data
    }
    this.todo = function(){
        data = this.data
        info = this.info
        for(var i in info){
            for(var j in data){
                for(var k in data[j]){
                    if(i==k){
                        if(info[i]=='bool'){
                            data[j][k] = Boolean(data[j][k])
                        }else if(info[i]=='string'){
                            data[j][k] = String(data[j][k])
                        }else if(info[i]=='int'){
                            data[j][k] = Number(data[j][k]).toFixed(0)
                        }else if(info[i]=='float'){
                            data[j][k] = Number(data[j][k])
                        }else if(info[i]=='array'){
                            data[j][k] = Array(data[j][k])
                        }else if(info[i]=='object'){
                            data[j][k] = Object(data[j][k])
                        }
                    }
                }
            }
        }
        this.data = data
    }
    this.translate = function(info){
        this.info = info
        this.todo()
        return this.data
    }
    }
    var data = new Array(
        {
            id:'1',
            sex:0,
            name:'zhang',
            pics:new Array('a.png','b.png')
        },
        {
            id:'2',
            sex:'0',
            name:'li',
            pics:new Array('c.png','d.png')
        },
        {
            id:'5',
            sex:'true',
            name:'5',
            pics:new Array('e.png','f.png')
        }
    )
    var arr = {
        id:'int',
        sex:'bool',
        name:'string',
        pics:'array'
    }
    var translation = new translation(data)
    translation.init()
    var ret = translation.translate(arr)
    console.log(ret);
  2. 輸出:
    [ { id: '1', sex: false, name: 'zhang', pics: [ [Array] ] },
    { id: '2', sex: true, name: 'li', pics: [ [Array] ] },
    { id: '5', sex: true, name: '5', pics: [ [Array] ] } ]

    二、php:

  3. 代碼:
    <?php
    /**
    * 類型轉(zhuǎn)換類
    * @author [lee] <[<www.dollarphp.com>]>
    */
    class translation{
    private $data;
    private $info;
    public function __construct($data){
        $this->data = $data;
    }
    private function todo(){
        $data = $this->data;
        $info = $this->info;
        foreach($info as $k=>$v){
            foreach($data as $k1=>$v1){
                foreach($v1 as $k2=>$v2){
                    if($k==$k2){
                        if($v=='bool'){
                            $data[$k1][$k2] = (bool)$v2;
                        }elseif($v=='string'){
                            $data[$k1][$k2] = (string)$v2;
                        }elseif($v=='int'){
                            $data[$k1][$k2] = (int)$v2;
                        }elseif($v=='float'){
                            $data[$k1][$k2] = (float)$v2;
                        }elseif($v=='array'){
                            $data[$k1][$k2] = (array)$v2;
                        }elseif($v=='object'){
                            $data[$k1][$k2] = (object)$v2;
                        }
                    }
                }
            }
        }
        $this->data = $data;
    }
    public function translate($info){
        $this->info = $info;
        $this->todo();
        return $this->data;
    }
    }
    $data = array(
        array(
            id=>'1',
            sex=>'true',
            name=>'zhang',
            pics=>array('a.png','b.png')
        ),
        array(
            id=>'2',
            sex=>'true',
            name=>'li',
            pics=>array('c.png','d.png')
        ),
        array(
            id=>'5',
            sex=>'true',
            name=>'5',
            pics=>array('e.png','f.png')
        )
    );
    $arr = array(
        id=>'int',
        sex=>'bool',
        name=>'string',
        pics=>'array'
    );
    $translation = new translation($data);
    $data = $translation->translate($arr);
    var_dump($data);
  4. 輸出:
    array(3) {
    [0]=>
    array(4) {
    ["id"]=>
    int(1)
    ["sex"]=>
    bool(true)
    ["name"]=>
    string(5) "zhang"
    ["pics"]=>
    array(2) {
      [0]=>
      string(5) "a.png"
      [1]=>
      string(5) "b.png"
    }
    }
    [1]=>
    array(4) {
    ["id"]=>
    int(2)
    ["sex"]=>
    bool(true)
    ["name"]=>
    string(2) "li"
    ["pics"]=>
    array(2) {
      [0]=>
      string(5) "c.png"
      [1]=>
      string(5) "d.png"
    }
    }
    [2]=>
    array(4) {
    ["id"]=>
    int(5)
    ["sex"]=>
    bool(true)
    ["name"]=>
    string(1) "5"
    ["pics"]=>
    array(2) {
      [0]=>
      string(5) "e.png"
      [1]=>
      string(5) "f.png"
    }
    }
    }

文章題目:javascript與php類型轉(zhuǎn)換類
本文URL:http://bm7419.com/article18/gejcdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站設(shè)計(jì)公司、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站制作、企業(yè)網(wǎng)站制作、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)