如何在php中将Setter和Getter与数组一起使用
我在php中使用带有getter和setter的数组时遇到问题。我的类即使不是数组也可以正常工作。我的想法是从html表单中插入多个电话号码。用户id已插入,但手机为空。任何帮助都将不胜感激。先谢谢你 HTML: -------控制器实现--------- --------刀-----------------------------如何在php中将Setter和Getter与数组一起使用,php,oop,Php,Oop,我在php中使用带有getter和setter的数组时遇到问题。我的类即使不是数组也可以正常工作。我的想法是从html表单中插入多个电话号码。用户id已插入,但手机为空。任何帮助都将不胜感激。先谢谢你 HTML: -------控制器实现--------- --------刀----------------------------- public function inserirTelefone(Telefone $tlfn, SiteUserInfo $usuario) { $con
public function inserirTelefone(Telefone $tlfn, SiteUserInfo $usuario) {
$connection = new cnx();
$connection->connect();
$telefon = $tlfn->getTelefone();
$ce_usuario = $usuario->getUser_id();
foreach ($telefon as $telefone) {
$stmt = $connection->myconn->prepare("INSERT INTO tbltelefone_agenda (telefone_agenda,ce_agenda_evento) VALUES (?,?)");
$stmt->bind_param("ii", $telefone,$ce_usuario);
$stmt->execute();
$stmt->close();
$connection->close();
echo("<script>console.log('PHP: Telefone inserido com sucesso!');</script>");
return $stmt;
}
}
public function insertelefone(Telefone$tlfn,SiteUserInfo$usuario){
$connection=new cnx();
$connection->connect();
$telefon=$tlfn->getTelefone();
$ce_usuario=$usuario->getUser_id();
foreach($telefon as$telefone){
$stmt=$connection->myconn->prepare(“插入tbltelefone\u议程(电话会议议程、ce\u议程事件)值(?,)”;
$stmt->bind_param(“ii”)、$telefone、$ce_usuario);
$stmt->execute();
$stmt->close();
$connection->close();
echo(“console.log('PHP:Telefone-inserido-com-sucesso!');”;
返回$stmt;
}
}
$\u POST['telefone']
是一个数组,因此需要通过调用setter来循环它
foreach ($_POST['telefone'] as $tel) {
if ($tel) {
$tlfn->setTelefone(trim($tel));
}
}
您应该通过编辑问题而不是在注释中添加代码来进行更正。单击问题下方的链接。此外,将代码块缩进四个空格,并确保前面有一个空行,以使其完全格式化为代码。看起来您在PHP代码中将
$\u POST['telefone']
作为字符串引用,但HTML表单中的name=“telefone[]”
表示它在$\u POST中的值将是一个数组,不是字符串。若要添加到@Don'tPanic的注释中,eve_descri位于文本区域中,您正在尝试将其绑定为bind_param中的整数。你从未向我们展示过$usuario变量的来源。很抱歉,我很难发布html标记,那么我该如何将其设置为字符串数组?谢谢Barmar,我的控制器正在处理你的更改。。。然而,我的刀重复循环的第一个元素。我已经做了这个更改->foreach($tlfn->getTelefone()作为$telefone){/*我的代码如上所述*/},我哪里出错了?或者我应该使用for(){}instadI看不到任何会导致重复的内容。在telefone
属性中,var\u dump($tlfn)
显示了什么?这是我得到的对象(telefone){3(1){[“telefone”:“telefone”:private]=>array(2){[0]=>string(9)“333555444”[1]=>string(9)“777333999”},这很好。。。两个不同的数字。
$inserirDados = new AgendaEventoDAO();
$tlfn = new Telefone();
$tlfn->setTelefone($_POST['telefone'] ? trim($_POST['telefone']) : '');
if($inserirDados->inserirTelefone($tlfn,$usuario)){
print "Telefone do Agendamento Inserido com sucesso!";
}
public function inserirTelefone(Telefone $tlfn, SiteUserInfo $usuario) {
$connection = new cnx();
$connection->connect();
$telefon = $tlfn->getTelefone();
$ce_usuario = $usuario->getUser_id();
foreach ($telefon as $telefone) {
$stmt = $connection->myconn->prepare("INSERT INTO tbltelefone_agenda (telefone_agenda,ce_agenda_evento) VALUES (?,?)");
$stmt->bind_param("ii", $telefone,$ce_usuario);
$stmt->execute();
$stmt->close();
$connection->close();
echo("<script>console.log('PHP: Telefone inserido com sucesso!');</script>");
return $stmt;
}
}
foreach ($_POST['telefone'] as $tel) {
if ($tel) {
$tlfn->setTelefone(trim($tel));
}
}