Позвольте мне сказать заранее, что я искал SO так же, как и другие сайты, прежде чем, наконец, сломался и спросил. Насколько я понимаю из всего, что я читаю, я делаю все правильно, но это не работает.вызов метода в том же классе не сработает (PHP)
Я работаю с простейшим классом проверки формы с помощью метода для каждого типа используемого поля. Этот метод возвращает сообщение об ошибке или пустую строку. Они отлично работают сами по себе.
Затем я добавил еще один метод, который использует имя поля как «тип», который подается в оператор switch и решает, какой валидатор для вызова. Соответствующий отрывок:
<?php
class validate{
public function valRequired($string){
if(!empty($string)){
return "";
}
return "This field may not be blank";
}
public function valField($value,$type){
switch($type){
case "city":
$this->valRequired($value);
break;
}
}
}
?>
Тогда я пытаюсь вызвать его:
$inputs=array(
"city"=>"",
);
$val=new validate;
$test=$val->valField($inputs['city'],"city");
echo $test;
Нет выхода. var_dump ($ test) возвращает NULL.
$test=$val->valRequired($inputs['city']);
echo $test;
Возвращает ожидаемое сообщение об ошибке.
Последнее, что я пробовал, - это скопировать код из метода valRequired и вставить его в оператор switch вместо $ this-> valRequired ($ value). Это сработало, поэтому я чувствую, что это ошибка в том, как я вызываю метод valRequired внутри оператора switch.
Я уверен, что это что-то простое, но я только начинаю разбираться с ООП, и я очень взволнован тем, к чему это приведет. Спасибо за любой совет.
Что вы ожидаете? Ваши функции dosnt 'возвращают что-либо - в любом случае, нет ничего, чтобы эхо. – davidkonrad
также ваш возвращающийся 'return '"; 'который очистит значение use' return $ string; 'вместо –
Спасибо за помощь всем, кто ответил. Я знал, что это будет что-то простое. – bran