Я не понимаю ООП свойства / методы / объекты / и т.д …
как получить strlen свойства, а не объект в классе.
Я явно делаю это неправильно, мне нужен другой метод для strlen?
login.php
$act = isset( $_POST['act'] ) ? $_POST['act'] : '' ;
switch ($act) {
case 'login':
$username = new CleanData($_POST['username']);
$username-> set_minlength('8');
$username-> set_maxlength('250');
$username-> set_pregtype('replace');
$username-> set_regex('/[^ \p{L}\d-\_\@+\.]+/u');
$uname = $username->cleaner();
etc...
учебный класс
class CleanData{
protected $data;
protected $minlength;
protected $maxlength;
protected $pregtype;
protected $regex;
protected $replaced;
function __construct($data){
$this->data = trim($data);
$this->data = preg_replace('/\s{2,}/u', ' ', $this->data);
}
function set_minlength($minlength){
$this->minlength = $minlength;
}
function set_maxlength($maxlength){
$this->maxlength = $maxlength;
}
function set_pregtype($pregtype){
$this->pregtype = $pregtype;
}
function set_regex($regex){
$this->regex = $regex;
}
public function cleaner(){
$response = '';
if ($this->pregtype == 'match') {
if(preg_match($this->regex, $this->data)){
$response = $this->data;
}
}elseif ($this->pregtype == 'replace') {
$this->replaced = preg_replace($this->regex, '', $this->data);
if(strlen($this->replaced) >= $this->minlength && strlen($this->replaced) <= $this->maxlength) {
$response = $this->replaced;
}
}
return $response;
}
}
Примечание: объект класса CleanData не может быть преобразован в int
Задача ещё не решена.
Других решений пока нет …