你好吗?我希望很好!
因此,我开始使用OOP php,我有一个简单的问题:为什么要使用对象属性将某些内容插入数据库? 我将用一些代码来说明我的问题,以便更好地理解。
function criar () {
require_once '../conexao.php';
$sql = "insert into usuarios (nickname, nome, nascimento, email, avatar_id, genero) values ('$this->nick','$this->nome', '$this->nasc', '$this->email', '$this->avatar', '$this->genero');";
$conexao->query($sql);
}
这是一个名为usuarios的类中的函数,该函数在名为usuarios.php的文件中定义,我使用它将数据插入到我的数据库中。有人告诉我这是“使用oop php时很好的习惯”。 这就是我在另一个名为criar_usuario.php的文件中使用函数的方式:
<?php
if ($_SERVER['REQUEST_METHOD']=='POST'){
require_once '../classes/usuarios.php';
$nick = $_POST['nick'];
$nome = $_POST['nome'];
$nasc = $_POST['nascimento'];
$email = $_POST['email'];
$adm = $_POST['credencial'];
$genero = $_POST['genero'];
$avatar = $_POST['avatar'];
$senha = $_POST ['senha'];
$u=new usuarios();
$u->set_nick($nick);
$u->set_name($nome);
$u->set_nasc($nasc);
$u->set_email($email);
$u->set_avatar($avatar);
$u->set_credencial($credencial);
$u->set_genero($genero);
$u->set_senha($senha);
$u->criar();
header ('location: ../usuarios.html');
}
?>
因此,如您所见,首先设置对象属性,然后将这些属性插入数据库。
我也可以这样写我的函数:
if ($_SERVER['REQUEST_METHOD']=='POST'){
require_once '../classes/usuarios.php';
$nick = $_POST['nick'];
$nome = $_POST['nome'];
$nasc = $_POST['nascimento'];
$email = $_POST['email'];
$adm = $_POST['credencial'];
$genero = $_POST['genero'];
$avatar = $_POST['avatar'];
$senha = $_POST ['senha'];
$u=new usuarios();
$u->criar($nick, $nome, $nasc, $email, $adm, $genero, $avatar, $senha);
header ('location: ../usuarios.html');
}
并这样称呼它:
if ($_SERVER['REQUEST_METHOD']=='POST'){
require_once '../classes/usuarios.php';
$nick = $_POST['nick'];
$nome = $_POST['nome'];
$nasc = $_POST['nascimento'];
$email = $_POST['email'];
$adm = $_POST['credencial'];
$genero = $_POST['genero'];
$avatar = $_POST['avatar'];
$senha = $_POST ['senha'];
$u=new usuarios();
$u->criar($nick, $nome, $nasc, $email, $adm, $genero, $avatar, $senha);
header ('location: ../usuarios.html');
}
为什么我应该使用第一种方法,而不仅仅是使用通用参数创建函数,而不是使用对象的属性?以对象的方式完成操作不仅是做不必要的工作(创建对象,设置属性,当我可以直接使用函数时,他们使用它们将其插入数据库)?