我有一个班级:
score
我将其所有实例写入文件:
class user{
public $login = "userlogin";
public $pass = "userpass";
function __construct() {
$this->login = $_POST['slogin'];
$this->pass = $_POST['spass'];
}
function display() {
return $this->login;
}
}
并且所有这些都有效,现在我想删除一些用户的名字($ class-> login),所以我写道:
function dataStore ($obj, $dataFile) {
$dataTmp .= serialize($obj);
file_put_contents($dataFile, $dataTmp);
}
if (isset($_POST['submit'])) {
$newuser = new user();
$users[ $newuser->login ] = $newuser;
dataStore($users, $dataFile);
}
html:
function deleteUser($name,$array) {
unset($array[$name]);
}
if (isset($_POST['submitDelete'])) {
deleteUser($_POST['sdelete'],$users);
dataStore($users, $dataFile);
}
但这不起作用,为什么?我无法弄清楚什么是错的,你能以某种方式指出我吗?
答案 0 :(得分:1)
看起来你需要从deleteUser()函数返回数组,然后在dataStore()函数中使用它。
编辑 - 再加上约瑟夫说的话:)
答案 1 :(得分:0)
所以,像Paul Riley说的那样我们必须返回值,或者通过引用函数传递数组(默认是传递值), 要做到这一点,我们在变量名称之前添加&符号(>'&'):
function deleteUser($name,&$array) { //
unset($array[$name]);
}