Укажите все не верные утверждения относительно абстрактных классов в php5?
Варианты ответа:
1) Абстрактные классы введены начиная с php5
2) Класс хотя бы с одним абстрактным методом должен быть объявлен как абстрактный
3) Абстрактный класс может содержать не абстрактные методы
4) Определение абстрактного метода может содержать тело метода
Укажите все не верные утверждения относительно абстрактных классов в php5?
Варианты ответа:
1) Абстрактные классы введены начиная с php5
2) Класс хотя бы с одним абстрактным методом должен быть объявлен как абстрактный
3) Абстрактный класс может содержать не абстрактные методы
4) Определение абстрактного метода может содержать тело метода
interface iSingleton {
public static function getInstance();
}
class singleton implements iSingleton {
private static $instance = false;
final public static function getInstance() {
return (self::$instance) ? self::$instance : self::$instance = new static;
}
private function __construct(){}
private function __clone(){}
function f1(){
echo 'Singleton::f1()';
}
}
class cl1 extends singleton{
function f1(){
echo 'cl1::f1()';
}
}
class cl2 extends singleton{
function f1(){
echo 'cl2::f1()';
}
}
cl1::getInstance()->f1();
cl2::getInstance()->f1();
interface iSingleton {
public static function getInstance();
}
class singleton implements iSingleton {
private static $instance = false;
final public static function getInstance() {
return (self::$instance) ? self::$instance : self::$instance = new static;
}
private function __construct(){}
private function __clone(){}
function f1(){
echo 'Singleton::f1()';
}
}
class cl1 extends singleton{
function f1(){
echo 'cl1::f1()';
}
}
class cl2 extends singleton{
function f1(){
echo 'cl2::f1()';
}
}
cl1::getInstance()->f1();
cl2::getInstance()->f1();
Данный код выведет ошибку. В какой строке?
var = "B";
}
}
class E extends B {
public $var = "E";
function __construct() {
$this->var = "E";
}
function __clone() {
$this->var = "C";
}
}
$var1 = new B();
$var2 = new E();
$var3 = $var1;
$var4 = clone($var2);
$var5 =& $var4->var;
$var2->var = "V";
Варианты ответа:
1) $var1 = new B();
2) $var4 = clone($var2);
3) function __clone() {
4) $var5 =& $var4->var;
5) $var3 = $var1;
Данный код выведет ошибку. В какой строке?
var = "B";
}
}
class E extends B {
public $var = "E";
function __construct() {
$this->var = "E";
}
function __clone() {
$this->var = "C";
}
}
$var1 = new B();
$var2 = new E();
$var3 = $var1;
$var4 = clone($var2);
$var5 =& $var4->var;
$var2->var = "V";
Варианты ответа:
1) $var1 = new B();
2) $var4 = clone($var2);
3) function __clone() {
4) $var5 =& $var4->var;
5) $var3 = $var1;
Что будет напечатано?
ab = $a;
}
function __construct($a,$b){
$this->ab = $a+$b;
}
}
$c = new test(20,10);
echo $c->ab;
?>
Что будет напечатано?
ab = $a;
}
function __construct($a,$b){
$this->ab = $a+$b;
}
}
$c = new test(20,10);
echo $c->ab;
?>
В какой строке кода допущена ошибка:
<?php
2: class dog {
3: public function bark() {
4: echo "Woof!";
5: }
6: };
7:
8: $foo = new dog;
9: $foo->bark();
?>
В какой строке кода допущена ошибка:
<?php
2: class dog {
3: public function bark() {
4: echo "Woof!";
5: }
6: };
7:
8: $foo = new dog;
9: $foo->bark();
?>
Чем отличается абстрактный класс от интерфейса?
Варианты ответа:
1) Интерфейс не может содержать реализации
2) Абстрактный класс не может содержать реализации
3) Класс, реализующий интерфейс, обязан предоставить имплементацию всех методов этого интерфейса
4) Ничем не отличаются
Чем отличается абстрактный класс от интерфейса?
Варианты ответа:
1) Интерфейс не может содержать реализации
2) Абстрактный класс не может содержать реализации
3) Класс, реализующий интерфейс, обязан предоставить имплементацию всех методов этого интерфейса
4) Ничем не отличаются
Что выведет следующий код?
func();
$var2->func();
$var3->func();
$var2->parent();
$var3->parent();
$var3->grandpa();
Варианты ответа:
1) Base Extended Extended2 Base Extended
2) BaseBase Base Extended2 None Extended None
3) Base Base Extended2 None Extended Base
4) Base Base Extended2 Base Extended Base
5) Base Extended Extended2 Base Extended None
Что выведет следующий код?
func();
$var2->func();
$var3->func();
$var2->parent();
$var3->parent();
$var3->grandpa();
Варианты ответа:
1) Base Extended Extended2 Base Extended
2) BaseBase Base Extended2 None Extended None
3) Base Base Extended2 None Extended Base
4) Base Base Extended2 Base Extended Base
5) Base Extended Extended2 Base Extended None
Чтобы определить программный код, который будет выполняться каждый раз, когда создается новый экземпляр класса, вы добавите код внутри какого магического метода?
Чтобы определить программный код, который будет выполняться каждый раз, когда создается новый экземпляр класса, вы добавите код внутри какого магического метода?
Заданы классы:
abstract class BaseCls{
protected abstract function getName();
}
class ChildCls extends BaseCls{
}
Какие из реализаций метода getName() не валидны в классе ChildCls?
Заданы классы:
abstract class BaseCls{
protected abstract function getName();
}
class ChildCls extends BaseCls{
}
Какие из реализаций метода getName() не валидны в классе ChildCls?
Что напечатает следующий код:
newValue = 1;
$a = $b;
$a->newValue = 2;
echo $b->newValue;
Что напечатает следующий код:
newValue = 1;
$a = $b;
$a->newValue = 2;
echo $b->newValue;
Какой результат выполнения следующего кода?
class parentClass {
public function printMe () {
print 'i am '.self::who();
}
public static function who () {
return 'parent';
}
}
class childClass extends parentClass {
public static function who () {
return 'child';
}
}
$node = new childClass();
$node->printMe();
Какой результат выполнения следующего кода?
class parentClass {
public function printMe () {
print 'i am '.self::who();
}
public static function who () {
return 'parent';
}
}
class childClass extends parentClass {
public static function who () {
return 'child';
}
}
$node = new childClass();
$node->printMe();
Вам необходимо установить следующие области видимости для атрибутов класса:
1) Везде:
2) Потомки, предки, и текущий класс:
3) Только текущий класс:
Какие ключевые слова нужно использовать в каждом из этих трёх случаев?
Вам необходимо установить следующие области видимости для атрибутов класса:
1) Везде:
2) Потомки, предки, и текущий класс:
3) Только текущий класс:
Какие ключевые слова нужно использовать в каждом из этих трёх случаев?
-
-
-
-
-
В чем отличие записей Class::method() и $Class->method() ?
Варианты ответа:
1) Первая запись неверна для php
2) Вторая запись неверна для php
3) Вызов статического и динамического метода соответственно
4) Ни в чем
В чем отличие записей Class::method() и $Class->method() ?
Варианты ответа:
1) Первая запись неверна для php
2) Вторая запись неверна для php
3) Вызов статического и динамического метода соответственно
4) Ни в чем
Что выведет данный код?
mType;
9. }
10.
11. final public function getColor()
12. {
13. return $this->mColor;
14. }
15. }
16.
17. final class Apple extends Fruit {
18. protected $mType = ' ';
19. protected $mColor = 'Red';
20.
21. final public function getColor()
22. {
23. return "Apple:".$this->mColor;
24. }
25. }
26.
27. $generalFruit = new Fruit();
28. $myApple = new Apple();
29. echo $generalFruit->getType().":".$generalFruit->getColor()
30. ." ".$myApple->getType().":".$myApple->getColor();
Что выведет данный код?
mType;
9. }
10.
11. final public function getColor()
12. {
13. return $this->mColor;
14. }
15. }
16.
17. final class Apple extends Fruit {
18. protected $mType = ' ';
19. protected $mColor = 'Red';
20.
21. final public function getColor()
22. {
23. return "Apple:".$this->mColor;
24. }
25. }
26.
27. $generalFruit = new Fruit();
28. $myApple = new Apple();
29. echo $generalFruit->getType().":".$generalFruit->getColor()
30. ." ".$myApple->getType().":".$myApple->getColor();