PHP 8 compatibility
[m6w6/ext-psi] / tests / ndbm / ndbm001.phpt
1 --TEST--
2 ndbm
3 --INI--
4 psi.directory={PWD}:{PWD}/../../psi.d
5 --FILE--
6 ===TEST===
7 <?php
8 class db {
9 private $db;
10
11 function __construct($file = __DIR__."/ndbm001.db", $o = psi\O_CREAT|psi\O_RDWR, $m = 0640) {
12 if (!$this->db = psi\dbm_open($file, $o, $m)) {
13 throw new Exception(psi\strerror(psi\errno()));
14 }
15 }
16
17 function __destruct() {
18 psi\dbm_close($this->db);
19 array_map("unlink", glob(__DIR__."/ndbm001.db*"));
20 }
21
22 function __set($k, $v) {
23 return psi\dbm_store($this->db, $k, $v, psi\DBM_REPLACE);
24 }
25
26 function __get($k) {
27 $val = psi\dbm_fetch($this->db, [
28 "dptr" => $k,
29 "dsize" => strlen($k)
30 ]);
31 if ($val) {
32 return $val["dptr"];
33 }
34 }
35 }
36
37 $db = new db();
38 $db->key = "data";
39 var_dump($db->key);
40 ?>
41 ===DONE===
42 --CLEAN--
43 <?php
44 array_map("unlink", glob(__DIR__."/ndbm001.db*"));
45 ?>
46 --EXPECT--
47 ===TEST===
48 string(4) "data"
49 ===DONE===