在一个php类中有很多方法是正常的吗?
我正在开发一个用于表单验证的php类,该类验证了不同的内容,例如,空、长度等 这里有两种方法。正如标题所说,在一个类中有一堆方法是正常的吗只要回答是或否就足够了。在一个php类中有很多方法是正常的吗?,php,methods,Php,Methods,我正在开发一个用于表单验证的php类,该类验证了不同的内容,例如,空、长度等 这里有两种方法。正如标题所说,在一个类中有一堆方法是正常的吗只要回答是或否就足够了。 //检查用户名是否为空 函数验证\空\用户名(){ 如果($this->empty_username){ echo“请填写用户名字段””; 返回false; } } //检查密码是否为空 函数验证\空\密码(){ 如果($this->empty\u密码){ echo“请填写密码字段””; 返回false; } } //检查电子邮件是否
//检查用户名是否为空
函数验证\空\用户名(){
如果($this->empty_username){
echo“请填写用户名字段” ”;
返回false;
}
}
//检查密码是否为空
函数验证\空\密码(){
如果($this->empty\u密码){
echo“请填写密码字段” ”;
返回false;
}
}
//检查电子邮件是否为空
函数验证\u空\u电子邮件(){
如果($this->empty_email){
echo“请填写电子邮件字段” ;
返回false;
}
}
//检查用户名长度是否短
函数验证\用户名\长度\最小值(){
如果($this->get\u username\u length<3){
echo“提供的用户名太短了! ”;
返回false;
}
}
//检查密码长度是否短
函数验证\密码\长度\最小值(){
如果($this->get_password_length<5){
echo“提供的密码太短了! ”;
返回false;
}
}
//检查电子邮件长度是否短
函数验证\电子邮件长度\最小值(){
如果($this->get_email_length<5){
echo“提供的电子邮件太短了! ”;
返回false;
}
}
这不是批次
。。。只要它有道理,不违反原则,你就没事。只需遵循编程规则和OOP
您所展示的这些方法显然有些关联,如果将它们放在一个类中,这不是问题。我认为,如果这种逻辑散布在源代码中,情况会更糟。我假设您将同时使用所有这些验证函数,因此我建议将它们放在一起
但一般来说,一个类中可以有任意多个函数,但最终会出现这样一种情况:函数太多,以至于没有使代码更简单,反而造成了一片混乱
我只会将不相关的代码放在不同的函数中。因为当你有相似的代码部分时,通常更容易在单个函数中进行编码。根据我的经验,这是这样的:你开始编写你的类,然后你回来给一个方法添加一些东西,然后你可能会用相似的功能扩展你的类,最后你会意识到,如果它变得脏了,并且有很多东西,那么您可以将其合并到单个(私有)函数中,这样不仅可以减少代码的长度,还可以使其更易于维护
所以我的建议是:总是花点时间,想想你要做什么,你要实现的方法是否是一系列子函数,这些子函数本身在其他地方是否有用。尽量使函数原子化,但只将需要的函数声明为公共函数。是的。只要类中的方法是相关的,就可以使用。而且你的函数列表很短。如果你想验证,可以使用。使用起来也很简单。当然,只要这些方法与类相关。你这里的很多方法似乎都非常相关,我可能会在一个“检查电子邮件”呼叫下将它们全部弹出-但是说了这么多,让类做很多事情没有什么错。不能投票,需要@walther 15 rep。但是谢谢你的回答:)@1to1k,没问题,你可以稍后再来投票;)顺便说一句,如果你需要帮助优化你的代码,我们有一个很好的网站:我想我会制作3个以上的函数,并把所有类似的函数放在里面。像check_电子邮件将有两个功能,让我们说check_length check_length等。。因为我正在一个接一个地调用方法。。我还可以调用一个主要方法,比如check_email,然后从内部调用其他方法(check_length..check_empty)。这听起来是个好主意还是我遗漏了什么@zoran404如何删除我的问题。。人们开始-无论我做什么。。在我失去发布更多问题的能力之前,需要删除它。当然,你会逐个使用这些问题,但是如果你总是以相同的顺序使用它们,那么就没有必要使用多个函数,但是如果你这样做也不是错误的。(如果你想删除这个问题,在它的底部有一个删除按钮,就在标签下面,尽管你不需要这样做,因为你有积极的观点;现在你也可以向上投票)嘿@user3107673。伙计,我试图在一个函数中放置类似的方法,但是当我调用这个函数时,它里面的方法不会被调用,我应该怎么做,这样当我调用这个函数时,它里面的方法也会被调用?thanks@1to1k你能分享你的代码吗?伙计。我根据我所说的改变了密码@user3107673@1to1k有一个语法错误{缺失。除此之外,我可以实例化该类,并且所有函数都工作正常。一个好的做法是在每个函数中放置一个回音,以检查是否调用了所有函数,您可以稍后删除这些函数。请告诉我您遇到了什么错误。嘿@Robert.Mate我正在尝试在函数中放置类似的方法,但当我调用此函数时不调用函数中的方法我应该怎么做,以便在调用函数时也调用函数中的方法?thanks@1to1k如果您使用的是嵌套函数(函数中的函数,或者在您的例子中是方法中的函数),并且您使用的是像“$this”这样的变量/对象,那么您必须传递该变量
//Checks if is username empty
function validate_empty_username(){
if($this->empty_username){
echo "<li>Please fill username field</li>";
return false;
}
}
//Checks if is password empty
function validate_empty_password(){
if($this->empty_password){
echo "<li>Please fill password field</li>";
return false;
}
}
//Checks if is email empty
function validate_empty_email(){
if($this->empty_email){
echo "<li>Please fill email field</li>";
return false;
}
}
//Check username length is short
function validate_username_length_min(){
if($this->get_username_length < 3){
echo "<li>Username provided's too short!</li>";
return false;
}
}
//Check password length if short
function validate_password_length_min(){
if($this->get_password_length < 5){
echo "<li>Password provided's too short!</li>";
return false;
}
}
//Check email length if short
function validate_email_length_min(){
if($this->get_email_length < 5){
echo "<li>Email provided's too short!</li>";
return false;
}
}