У меня возникли некоторые проблемы, из-за которых мой объект постепенно выходит из строя, если во время создания экземпляра задан неверный параметр. У меня такое ощущение, что это небольшая синтаксическая вещь, на которую мне просто нужны свежие глаза. Любая помощь приветствуется.
class bib {
protected $bibid;
public function __construct($new_bibid) {
if(!$this->bibid = $this->validate_bibid($new_bibid)) {
echo 'me';
return false;
}
//carry on with other stuff if valid bibid
}
private static function validate_bibid($test_bibid) {
//call this method every time you get a bibid from the user
if(!is_int($test_bibid)) {
return false;
}
return (int)$test_bibid;
}
}
Обратите внимание, что у меня есть строка 'echo me', чтобы продемонстрировать, что она на самом деле возвращает false. То, как я это называю в моем PHP, выглядит следующим образом:
if(!$bib=new bib('612e436')) {
echo 'Error Message';
} else {
//do what I intend to do with the object
}
Это выводит меня сверху, но затем продолжается в блок else, делая то, что я намерен делать с действительным объектом.
Может кто-нибудь заметить, что я там делаю неправильно?
Спасибо!