50 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Classes and Objects
							 | 
						|||
| 
								 | 
							
								localeTitle: Классы и объекты
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								# Классы и объекты
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Классы - это то, как мы представляем типы объектов в мире. Объектами будут фактические _экземпляры_ этого класса в мире. Класс определяет _свойства_ и _поведение_ объекта этого класса. Класс определяет, как объект может взаимодействовать с остальным миром. Классы также позволяют нам абстрагировать детали, которые мы не хотим показывать другим людям!
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Скажем, например, у вас есть собака по имени Spot. Spot - это один экземпляр объекта Dog (class).
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								PHP-код для определения класса:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```php
							 | 
						|||
| 
								 | 
							
								// Dog class 
							 | 
						|||
| 
								 | 
							
								 class dog { 
							 | 
						|||
| 
								 | 
							
								    // Keep name and age private - we don't want to be able to change these! 
							 | 
						|||
| 
								 | 
							
								    private $name; 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								    private $age; 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								    // Constructor allows us to make an object of this class with given parameters. 
							 | 
						|||
| 
								 | 
							
								    function __construct($name, $age){ 
							 | 
						|||
| 
								 | 
							
								        $this->name = $name; 
							 | 
						|||
| 
								 | 
							
								        $this->age = $age; 
							 | 
						|||
| 
								 | 
							
								        echo 'Dog named: '.$this->name.' is '.$this->age.' years old.'; 
							 | 
						|||
| 
								 | 
							
								    } 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								    // Destructor gets called when the item is deleted. 
							 | 
						|||
| 
								 | 
							
								    function __destruct(){ 
							 | 
						|||
| 
								 | 
							
								        echo 'Dog '.$this->name.' has ran off into the sunset'; 
							 | 
						|||
| 
								 | 
							
								    } 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								    function getname() { 
							 | 
						|||
| 
								 | 
							
								        echo $this->name; 
							 | 
						|||
| 
								 | 
							
								    } 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								    function getage() { 
							 | 
						|||
| 
								 | 
							
								        echo $this->age; 
							 | 
						|||
| 
								 | 
							
								    } 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 $mydog = new dog("Spot", "8"); 
							 | 
						|||
| 
								 | 
							
								 echo $mydog->getname(); 
							 | 
						|||
| 
								 | 
							
								 echo $mydog->getage(); 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Вышеупомянутый код будет эхом: Собака по имени: Пятно 8 лет. Место 8 Собака пятна убежала на закат
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Я создал объект $ mydog класса dog. Его конструктор был вызван, я использовал некоторые методы внутри класса, затем был вызван деструктор.
							 |