Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中将Setter和Getter与数组一起使用_Php_Oop - Fatal编程技术网

如何在php中将Setter和Getter与数组一起使用

如何在php中将Setter和Getter与数组一起使用,php,oop,Php,Oop,我在php中使用带有getter和setter的数组时遇到问题。我的类即使不是数组也可以正常工作。我的想法是从html表单中插入多个电话号码。用户id已插入,但手机为空。任何帮助都将不胜感激。先谢谢你 HTML: -------控制器实现--------- --------刀----------------------------- public function inserirTelefone(Telefone $tlfn, SiteUserInfo $usuario) { $con

我在php中使用带有getter和setter的数组时遇到问题。我的类即使不是数组也可以正常工作。我的想法是从html表单中插入多个电话号码。用户id已插入,但手机为空。任何帮助都将不胜感激。先谢谢你

HTML:

-------控制器实现---------

--------刀-----------------------------

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));
    }
}