За последние 24 часа нас посетил 22651 программист и 1278 роботов. Сейчас ищет 791 программист ...

Преобразование типов из С#

Тема в разделе "PHP для новичков", создана пользователем Artur_hopf, 18 сен 2019.

  1. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Добрый день. У меня тут спросили есть ли преобразование типов в php как в c#

    Значит я по этой инструкции https://metanit.com/sharp/tutorial/3.11.php создал такой пример на c#
    Код (Text):
    1. using System;
    2.  
    3. namespace myApp
    4. {
    5.     class Program
    6.     {
    7.         static void Main(string[] args)
    8.         {
    9.             Employee employee = new Employee("Tom", "Microsoft");
    10.             Person person = employee;   // преобразование от Employee к Person
    11.      
    12.             Console.WriteLine(person.Name);
    13.         }
    14.     }
    15.  
    16.     class Person
    17.     {
    18.         public string Name { get; set; }
    19.         public Person(string name)
    20.         {
    21.             Name = name;
    22.         }
    23.         public void Display()
    24.         {
    25.             Console.WriteLine($"Person {Name}");
    26.         }
    27.     }
    28.  
    29.     class Employee : Person
    30.     {
    31.         public string Company { get; set; }
    32.         public Employee(string name, string company) : base(name)
    33.         {
    34.             Company = company;
    35.         }
    36.     }
    37.  
    38. }
    И как я думал сделал что то похожее на php:
    PHP:
    1. class Person
    2. {
    3.     public $name;
    4.  
    5.     function __construct( $name )
    6.     {
    7.         $this->name = $name;
    8.     }    
    9.  
    10.     public function getPerson()
    11.     {
    12.         $result[] = $this->name;
    13.         return $result;
    14.     }
    15.  
    16. }
    17.  
    18. class Employee extends Person
    19. {
    20.     public $company;
    21.  
    22.     function __construct( $name, $company )
    23.     {
    24.         parent::__construct($name);
    25.  
    26.         $this->company = $company;
    27.     }
    28.  
    29.     public function getEmployee()
    30.     {
    31.         $result[] = parent::getPerson();
    32.         $result[] = $this->company;
    33.         return $result;
    34.     }
    35.  
    36. }
    37.  
    38. $employee = new Employee("Tom", "Microsoft");
    39.  
    40. print_r($employee->getPerson());
    мне сказали что это не то, и я лошара.
    Подскажите пожалуйста можно ли сделать преобразование типов в php как в c# ?
     
  2. kazadai90

    kazadai90 Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    103
    Симпатии:
    19
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    @Artur_hopf, в данном случае и в шарпах нету преобразования. Ты просто в ссылку на базовый класс записываешь ссылку производный. Так можно почти во всех ОО-языках, на этом основана реализация полиморфизма. В PHP смысла нету, поскольку обычные переменные пока не типизированы вроде даже в 7.4. Но везде, где типы предусмотрены (параметры, поля (7.4.), возвращаемое значение) так делать можно
     
    Artur_hopf нравится это.
  4. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @mkramer спасибо. Просто с меня спросили, позже поставили под сомнение знание php. Обосрали в общем :)