2010-07-23 2 views
2

Я читал, что основные изменения были внесены в PHP 5 в структуру OO, поэтому я заинтересован (перед тем, как заняться OOP PHP), что пользователям потребуется определенная версия PHP, установленная для запуска моего приложения (либо 4, либо 5). До сих пор это не было проблемой, так как это были просто различия, такие как отсутствующие функции или разные возвращаемые значения.PHP OOP 4/5 Совместимость?

Так будет ли структурированное PHP-приложение OOP, предназначенное для PHP 4, работать под PHP 5, или наоборот?

ответ

8

По большей части, все написанные с использованием PHP 4 ООП должен работать в PHP 5.

Однако, поддержка PHP 4 уронила много лет назад. Он даже не получает исправлений безопасности. Нет никакой причины запуска PHP 4 сегодня.

+0

Причина, по которой я спрашиваю, заключается в том, что, к сожалению, многие веб-хосты все еще ограничивают своих пользователей PHP 4. Считаете ли вы, что PHP-ориентированное OO-приложение будет работать под PHP 4? – Alex

+3

@Alex: если хост заставляет вас использовать php4, держитесь подальше от этого хостера. – smoove

0

Я бы не стал беспокоиться об этом, поскольку php4 больше не поддерживается (читай: никаких исправлений безопасности).

php4 мертв, не используйте его.

1

Да, вы можете сделать свой код запущенным как на 4, так и на 5, например, фреймовые фреймы, такие как CodeIgniter и CakePHP, также поддерживают php4 отдельно от php5.

Также учтите, что php4 не используется столько, сколько php5. Вы должны взглянуть на:

Differences between PHP4 and PHP5

1

Одна из самых больших изменений в магических методов, которые прибыли в PHP5. Например, вы можете выполнить некоторую инициализацию, когда экземпляр вашего объекта создается с использованием метода магии __construct(). Однако в среде PHP4 этот метод не будет выполнен.

Путь к этому - создать метод с тем же именем, что и ваш класс. Например:

<?php 
class SomeName { 

    function __construct() { 
     // do some stuff here 
    } 

    function SomeName() { 
     $this->__construct(); 
     // for PHP 4 support; executes __construct on class initialization 
    } 
} 
$class = new SomeName; 
0

Вы можете сделать гораздо приятнее вещи OO PHP5, чем PHP4 годов. Я просто принял решение разорвать совместимость с PHP4 и значительно улучшил мой код.

Имея надлежащие общедоступные/частные методы, хорошо, и новый метод __toString() интересен.

Я не думаю, что многие хосты теперь все равно ограничивают вас PHP4. Возможно, это было год назад, но, конечно, не сейчас. Я сделал опрос пользователей соломы и менее 10% были на PHP4. Из них большинство желающих обновить.