Jump to content

romantik2011

User
  • Posts

    35
  • Joined

  • Last visited

Everything posted by romantik2011

  1. А оператор throw даёт возможность выбросить исключение, но в этом не главная его цель, а его цель сразу перелететь на оператора catch с тем же типом создаваемого объекта класса что и в операторе throw и обработать его в КЭТЧ? То есть смысл оператора ЗРОУ чтоб перелететь сразу в кетч, отдать объекту описанного в кетче исключение и обработать его в кетче?
  2. Всё, спасибо так, сработало. <?php class nameExc extends Exception{ function __construct($msg){ $msg .=" name!"; parent::__construct($msg); } } class loginExc extends Exception{ function __construct($msg){ $msg .=" login!"; parent::__construct($msg); } } class passExc extends Exception{ function __construct($msg){ $msg .=" password!"; parent::__construct($msg); } } class A{ function __construct($n,$l,$p){ try{ if($n=="") throw new nameExc("Введите"); if($l=="") throw new loginExc("Введите"); if($p=="") throw new passExc("Введите"); }catch(nameExc $e){ echo $e->getMessage(); } catch(loginExc $e){ echo $e->getMessage(); } catch(passExc $e){ echo $e->getMessage(); } } } $obj = new A("","clown","111"); ?> Меня интересует один вопрос. Зачем нужно писать throw, если зроу выдаёт исключения ,а потом всё равно идёт переход от него в catch и КЭТЧ выбрасывает ещё исключение, зачем это нужно? Почему не достаточно одно блока try...catch? Зачем нужен всё-таки ЗРОУ, если его же задачу может выполнить КЭТЧ? То есть ЗРОУ даёт возможность отправится в кэтч, а без ЗРОУ, трай...кетч не сможет выдавать исключения?
  3. Написал так: <?php class A{ function __construct($n,$l,$p){ try{ if($n="" or $l="" or $p="") throw new Exception("Ошибка, один из аргументов не передан конструктору!"); echo "Имя: ",$n; echo "<br>Логин: ",$l; echo "<br>Пароль: ",$p; }catch(Exception $e){ echo $e->getMesage(); } } } $obj = new A("","clown","111"); ?> Я хочу чтоб сработало исключение при пустой передаче первого аргумента конструктору, а исключение не срабатывает, а выдаёт такой результат: Имя: Логин: Пароль: и даже значения переданные конструктору не подставляются.
  4. Читаю про исключения в пхп, решил написать код с исключениями, не срабатывают исключения, а выдаёт ошибку на 19 строке: Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\www\htdocs\test.ru\www\index.php on line 19 <?php class A{ function __construct($n,$l,$p){ try{ if($n="" or $l="" or $p="") throw new Exception("Ошибка, один из аргументов не передан конструктору!"); echo "Имя: ",$n; echo "<br>Логин: ",$l; echo "<br>Пароль: ",$p; }catch(Exception $e){ echo $e->getMesage(); } } $obj = new A("5","clown","111"); ?>
  5. class A{ public $f = 5; function __destruct(){ echo " УРА !"; } } $obj = new A(); echo $obj='Denis'; 1)Cначала выводит УРА а только потом Denis, почему так? 2)Как это объекту можно присваивать стрковые значения?
  6. А почему такой код, вызывает ещё в придачу деструктора? Ведь деструктор вызывается только в том случаи когда удалился объект функцией unset() ? <?php class A{ public $f = 5; function __destruct(){ echo " УРА !"; } } $obj = new A(); echo $obj->f; ?>
  7. Прочитал про деструкторы, возникли пару вопросов. 1)Для того чтоб новосозданный объект удалился с оперативной памяти не достатоно лишь прописать деструктор в классе, ещё отдельно нужно прописать название объекта в функции unset? 2)Если деструктор освобождает память, решил сделать бесконечный цикл, который бы выводил результат вызова автоматически созданного объекта. Вот написал код. <?php class User{ public $name; public $login; public $password; function __construct($name,$login,$password){ echo "Имя: $name <br>"; echo "Логин: $login "; echo "<br> Пароль: $password <br><br>"; } function __destruct(){ } } class SuperUser extends User{ public $role = "Ялта<br><br>"; } $object = new SuperUser("Super Admin","root","pass@word1"); echo $object->role; for(;{ $obj1 = new User("Пушкин","Pisatel","111"); unset($obj1); } ?> Цикл работает, но ничего не выводит, а я хотел чтоб выводил, удалил созданный объект, снова вывел и так бесконечно.
  8. А что дописать нужно, в каких файлах, что дописать?
  9. Вот он. http://romantik-2012.narod2.ru/
  10. Вроде все настройки сделал как надо, при запуске пхпмайадмина, выдаёт такое сообщение, хотя вроде я разкоментировал и есть эта библиотека, а пишет что нету.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy