easy use ArrayObject

1.2.2 2018-05-15 01:07 UTC

This package is auto-updated.

Last update: 2024-04-29 03:53:44 UTC


README

v 1.1.4

簡易的讓陣列(或其他格式),可以使用更好懂的物件風格來呼叫。例如

$data = array('say' => 'hello');

我們可以直接這麼使用

echo $data->say; // 輸出 hello

其他說明可以看:我的部落格

支持多種格式輸入的範例

陣列 Array

$mix = array('my'=>"Jsnao");
$result = new Jsnao($mix);
$result->my; // 輸出: Jsnao

JSON

$mix = '{"my":"Jsnao"}';
$result = new Jsnao($mix);
$result->my; // 輸出: Jsnao

物件 Object

$mix = new stdClass;
$mix->my = "Jsnao";
$result = new Jsnao($mix);
$result['my']; // 輸出: Jsnao

字串 String

$mix = 'Hello World';
$result = new Jsnao($mix);
$result->data; // 輸出: Hello World

整數或小數 Integer or Double

$mix = 123456;
$result = new Jsnao($mix);
$result->data; // 輸出: 123456

空值 Null

$mix = null;
$result = new Jsnao($mix);

一般用法

include_once("../jsnao.php");

$cart = array
(
    'A001'   =>  array
    (
        'name'  =>  'apple',
    ),
    1000 => array
    (
        'name'  => 'water'
    )
);
$cart = new jsnao($cart);

// 取值
$cart->A001->name; //output: apple
// 或
$cart->get(1000)->name;

// 賦值
$cart->A002 = array('name' => 'banana');
// 或
$cart->A002 = array();
$cart->A002->name = 'banana';
// 或
$cart->put(2000, array('name' => 'lemon'));

// 修改
$cart->A001->name = 'cherry';
// 或
$cart->A001->put('name', 'cherry');

// 刪除
$cart->A003 = array('name' => 'bag');
unset($cart->A003);

echo $cart;

陣列用法

<?
include_once("../jsnao.php");

// 購物車
$cart = array
(
    '001'   =>  array
    (
        'name'  =>  'apple',
    )
);

$cart = new Jsnao($cart);

// 取值
$cart['001']['name']; // output: apple

// 賦值
$cart['002']['name'] = "banana"; 

// 修改
$cart['001']['name'] = "cherry"; 

// 刪除
$cart['003']['name'] = "bag";
unset($cart['003']);

echo $cart;

繼承 ArrayObject 原生用法

<?
include_once("../jsnao.php");

// 購物車
$cart = array
(
    '001'   =>  array
    (
        'name'  =>  'apple',
    )
);

$cart = new Jsnao($cart);


// 取值
$cart->offsetGet('001')->name; //output: apple

// 賦值
$cart->offsetSet('002', array('name' => 'banana')); //output: apple

// 修改
$cart->offsetGet('001')->offsetSet('name', 'cherry');

// 刪除
$cart->offsetSet('003', array('name' => 'bag')); 
$cart->offsetUnset('003'); 

echo $cart;

方法

Jsnao::get($index)

取值

$result = new jsnao($array);
$result->get(0);
// 或
$result[0];

Jsnao::put($index, $value)

賦值

$result = new jsnao($array);
$result->put(1, "banana");
// 或
$result->put[1] = "banana";
// 或
$result->first = "banana";

Jsnao::toArray()

取得陣列型態

$result = new jsnao($array);
$result->toArray();

Jsnao::log($title = NULL)

透過到 JavaScript 輸出到 console.log()

$result = new jsnao($array);
$result->log();
// 或
$result->log("自訂顯示名稱");
// 或
$data = $result->log();

也可以放在想要檢視的定位點,例如

$data = array
(
    'profile' => array
    (
        'phone' => "0939-333-333",
        'tel' => "07-333-3333"
    ), 
);
$data = new jsnao($data);
echo $data->log()->profile->phone; 
// 輸出 0939-333-333
// console.log() 為 Object {profile: Object {phone: "0939-333-333", tel: "07-333-3333"}}

// 或是放在另外一個定位點

echo $data->profile->log()->phone; 
// 輸出 0939-333-333
// console.log() 為 Object {phone: "0939-333-333", tel: "07-333-3333"}

var_export()

輸出檢視錯誤時使用

$result = new jsnao($array);
echo $result;