fix to_array statment
[m6w6/ext-psi] / tests / ndbm / ndbm001.phpt
1 --TEST--
2 ndbm
3 --INI--
4 psi.directory={PWD}:{PWD}/../../psi.d
5 --SKIPIF--
6 <?php
7 extension_loaded("psi") or die("skip - need ext/psi");
8 function_exists("psi\\dbm_open") or die("skip - need nbdm support");
9 ?>
10 --FILE--
11 ===TEST===
12 <?php
13 class db {
14 private $db;
15
16 function __construct($file = "ndbm001.db", $o = 0102, $m = 0640) {
17 if (!$this->db = psi\dbm_open($file, $o, $m)) {
18 throw new Exception(psi\strerror(psi\errno()));
19 }
20 }
21
22 function __destruct() {
23 psi\dbm_close($this->db);
24 }
25
26 function __set($k, $v) {
27 return psi\dbm_store($this->db, [
28 "dptr" => $k,
29 "dsize" => strlen($k)
30 ], [
31 "dptr" => $v,
32 "dsize" => strlen($v)
33 ], psi\DBM_REPLACE);
34 }
35
36 function __get($k) {
37 $val = psi\dbm_fetch($this->db, [
38 "dptr" => $k,
39 "dsize" => strlen($k)
40 ]);
41 if ($val) {
42 return $val["dptr"];
43 }
44 }
45 }
46
47 $db = new db();
48 $db->key = "data";
49 var_dump($db->key);
50 ?>
51 ===DONE===
52 --CLEAN--
53 <?php
54 @unlink("ndbm001.db");
55 ?>
56 --EXPECT--
57 ===TEST===
58 string(4) "data"
59 ===DONE===