Главная /
PHP: ООП и классы /
Был разработан специализированный класс исключений, расширяющий информативность метода getCode(): <?php class eNewException extends Exception { function getCode() {return "Exception code: ".$this->code;} } try {throw new eNewException("test");} catc
Был разработан специализированный класс исключений, расширяющий информативность метода getCode()
:
<?php
class eNewException extends Exception
{
function getCode()
{return "Exception code: ".$this->code;}
}
try {throw new eNewException("test");}
catch (Exception $e){echo $e->getCode();}
?>
Ожидалось, что результатом выполнения сценария станет строка "Exception code: 0", однако в процессе выполнения сценария была сгенерирована фатальная ошибка. Из приведенных высказываний укажите высказывание, раскрывающее причину некорректности работы программы:
вопрос
Правильный ответ:
в производном классе не был определен конструктор
класс
Exception
не содержит поля code
типом аргумента блока
catch
следует указать производный класс, а не родительский
метод
getCode()
переопределить нельзя, т.к. он определен как final
Сложность вопроса
66
Сложность курса: PHP: ООП и классы
88
Оценить вопрос
Комментарии:
Аноним
Какой студент ищет данные ответы интуит? Это же безумно легко
16 июн 2018
Другие ответы на вопросы из темы программирование интуит.
- # Сценарий PHP содержит следующий код: <?php abstract class cBase { private $Data; function __construct($_Data){$this->Data = $_Data;} abstract function ShowData(); } class cDerivative1 extends cBase { function ShowData(){return $this->Data."0";} } class cDerivative2 extends cBase { function ShowData(){return $this->Data."-";} } $foo = new cDerivative1(2); $bar = new cDerivative2(4); echo $foo->ShowData().$foo->ShowData().$bar->ShowData().$foo->ShowData(); ?> Укажите результат выполнения сценария:
- # Из приведенных ниже высказываний укажите истинное:
- # Сценарий PHP содержит следующий код: <?php interface iInterf { abstract function f (); } ___ { protected $Data; function __construct($_D){$this->Data = $_D;} } class cBar extends cFoo { function f (){echo $this->Data;} } $foo = new cBar("реализация интерфейса"); $foo->f (); ?> Среди приведенных ниже фрагментов укажите все варианты кода, при подстановке которого вместо знаков подчеркивания результатом сценария будет строка "реализация интерфейса":
- # С целью определить, возвращает ли некоторая функция результат по ссылке или по значению, был разработан код, пример применения которого выглядит следующим образом: <?php define("FUNCTION_NAME","GetSmth"); // название тестируемой функции include "func.".FUNCTION_NAME.".php";// файл, содержащий определение // тестируемой функции function ReflectFunctionResult($_name) { $refl = new ReflectionFunction($_name); if(___) echo "Функция ".$_name."() возвращает результат по ссылке"; else echo "Функция ".$_name."() возвращает результат по значению"; } ReflectFunctionResult(FUNCTION_NAME); ?> Среди приведенных ниже фрагментов укажите вариант кода, подстановка которого вместо знаков подчеркивания решит поставленную задачу:
- # Сценарий PHP содержит следующий код: <?php class cFoo implements ArrayAccess { protected $Contents = array(); public $OperationCount = 0; public function offsetExists($_offset) { return isset($this->Contents[$_offset]); } public function offsetGet($_offset) { $this->OperationCount++; return $this->Contents[$_offset]; } public function offsetSet($_offset,$_value){$this->Contents[$_offset] = $_value;} public function offsetUnset($_offset) { unset($this->Contents[$_offset]); } } $foo = new cFoo; $foo["bar1"] = "значение1"; $foo["bar2"] .= "значение2"; echo $foo->OperationCount; ?> Укажите результат выполнения сценария: