Объекты и классы в PHP. Основы синтаксиса

Теоретические задания

Краткое содержание лекции | Практические задания

  1. Какие имена классов являются валидными?
    1. _test
    2. test_
    3. Test_
    4. Test
    5. 1Test
    6. Test1
    7. _Хлеб
    8. Хл$b
    9. Bre$ad
  2. Какие способы объявления аттрибута класса валидны? Какие из них не рекомендуются?
    1. public $attribute;
    2. public $_attribute;
    3. public $Attribute;
    4. public $UserInfo;
    5. public $userInfo;
    6. public $userInfo = array();
    7. public static $userInfo;
    8. static public $userInfo;
    9. var $attribute;
    10. private $attribute;
    11. $attribute;
    12. private static $attribute;
    13. protected $attribute;
    14. final protected $attribute;
    15. final public $attribute;
    16. final private $attribute;
    17. abstract private $attribute;
  3. Какие способы объявления методов класса валидны? Какие из них не рекомендуются?
    1. function 101advice() {}
    2. public function getadvice() {}
    3. public function getAdvice() {}
    4. function getAdvice() {}
    5. final private getAdvice() {}
    6. final private static getAdvice() {}
    7. abstract protected static function() {}
  4. В классе Test объявлена статическая переменная $value = 5;. Какие способы обращения к этой переменной валидны?
    1. echo Test::$value;
    2. echo Test::value;
    3. echo Test::$VALUE;
    4. echo TEST::$value;
    5. $test = new Test(); echo $test::$value;
    6. $test = new Test(); echo $test->$value;
  5. Какие объявления конструктора в классе Test являются невалидными?
    1. function __construct() {}
    2. public function __construct() {}
    3. protected function __construct() {}
    4. private function __construct() {}
    5. public function __construct($attribute1, $attribute2 = 5) {}
    6. function Test() {}
    7. function TEST() {}
  6. Какие объявления класса являются валидными и при каких условиях?
    1. class User {}
    2. abstract class User {}
    3. final abstract class User {}
    4. final class User {}
    5. private class User {}
    6. class User extends BaseUser {}
    7. abstract class User extends BaseUser {}
    8. abstract class User extends BaseUser, NullUser {}
    9. class User extends BaseUser implements Signed {}
    10. class User extends BaseUser implements SignedInterface {}
    11. class User extends BaseUser implements SignedInterface, AclInterface, NullableInterface {}
    12. abstract class User extends BaseUser implements SignedInterface {}
  7. Что такое пространство имен? Для чего нужно и как подключить класс из другого пространства имен?