Эта тема на forum.dklab.ru


seeryoga: php4 или PHP5 ?
Уважаемые специалисты посоветуйте, пожалуйста.

Стоит ли уже сейчас и в ближайшем будущем писать проекты на 5-й версии PHP?
Не получится так, что заказчики будут возвращать проекты т.к. хостеры не поддерживают 5-ю версию PHP? И как долго они ещё не будут поддерживать?
Thanks.

P.S.
Просто я привык писать код на Java и уж очень хочется использовать все новшества ООП в PHP5.
Благодарен...
Миша Спларов:
Стоит.
Юрий Насретдинов:
Со своей стороны могу лишь отметить, что поддержка PHP5 зачастую далека от идеала у большинства хостеров, если она и присутсвует. Так как основным языком всё-таки является PHP4, и вместе как модули они не работают.
Programmer:
seerYOGA, стоит, но, по сравнению с Java ООП в PHP5 довольно-таки слабо реализован несмотря на доведенную до ума инкапсуляцию, полиморфизм оставляет желать лучшего, так как не поддерживается перегрузка методов. Это очень ощутимо...
Миша Спларов:
Юpий Насрeтдинов, любой нормальный хостер, к моему счастью, по первому требованию ставил 5-ую версию.
seeryoga:
seerYOGA, стоит, но, по сравнению с Java ООП в PHP5 довольно-таки слабо реализован несмотря на доведенную до ума инкапсуляцию, полиморфизм оставляет желать лучшего, так как не поддерживается перегрузка методов. Это очень ощутимо...

Тема звучит << PHP4 или PHP5 ? >>
А сравнивать PHP5 и Java не надо. У них разные задачи….
Дмитрий Котеров:
полиморфизм оставляет желать лучшего, так как не поддерживается перегрузка методов. Это очень ощутимо
Вам в документацию надо сходить - вот это точно ощутимо. Ибо перегрузка еще в PHP3 была реализована.
Дмитрий Котеров:
seerYOGA
По слухам, поддержка PHP4 постепенно затухает (если уже не затухла). Соответственно, основной напор сейчас будет на PHP5. Я считаю, писать на нем однозначно стоит, и чем раньше, тем лучше.
lEO-dead:
Ибо перегрузка еще в PHP3 была реализована.
перегрузка методов в php?
стало страшно, пошел прочитал мануал, не нашел...
попробовал попробовать :) - нету перегрузки методов...
может вы не о том?
Дмитрий Котеров:
Скорее всего, это Вы не о том.
Пример неработающего кода - в студию!
Programmer:
Пример неработающего кода - в студию!

class test {
public function test($test) {
//
}

public function test($test, $test1) {
//
}

private function test($test) {
//
}

public function method() {
//
}

public function method($object, $nameMethod) {
//
}
}

Fatal error: Cannot redeclare
plyrvt:
Перегрузка методов с помощью __call
<?php
class Magic {

function __call($name,$arguments) {
if($name=='foo') {
if(is_int($arguments[0])) $this->foo_for_int($arguments[0]);
if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
}
}

private function foo_for_int($x) {
print("у, смотрите, целое число!");
}

private function foo_for_string($x) {
print("у, смотрите, строка!");
}
}

$x = new Magic();
$x->foo(3);
$x->foo("3");
?>

plyrvt:
Перегрузка методов PHP4

<?
class Page {
var $bgcolor, $textcolor;

function Page() {
// Определить количество переданных аргументов
// и вызвать метод с нужным именем
$name = "Page".func_num_args();
// Call $name with correct number of arguments passed in

if ( func_num_args() == 0 ) :
$this->$name();
else :
$this->$name(func_get_arg(0));
endif;
}

function Page0() {
$this->bgcolor = "white";
$this->textcolor = "black";
print "Created default page";
}

function Page1($bgcolor) {
$this->bgcolor = $bgcolor;
$this->textcolor = "black";
print "Created custom page";
}

}

$html_page = new Page("red");
?>

Programmer:
Перегрузка методов с помощью __call
попробуйте проделать подобную операцию для эмуляции перегрузки конструктора
Перегрузка методов PHP4
как и прошлый вариант - это лишь эмуляция
Дмитрий Котеров:
Яткевич Александр
Существование в классе методов с одним и тем же именем называется перегрузкой, а сами одноименные методы называются перегруженными. Перегрузка методов полезна, когда требуется решать подобные задачи с разным набором аргументов.
Я почему-то думал, Вы имели в виду перегрузку методов в смысле переопределения виртуальных методов в производном классе.
Я ошибся в терминологии, извините.

попробуйте проделать подобную операцию для эмуляции перегрузки конструктора
А какая разница? С помощью func_num_args() или __call() можно и конструктор заставить реагировать по-разному на разное число входных параметров. Другое дело, что это перегрузка во время исполнения, а не во время трансляции, да и типы параметров так легко не удастся сверить...
weber2005:
Извините, что вмешиваюсь, может быть немного не по теме...
Хотелось спросить, какая наиболее стабильная версия PHP 5.xx ?
Dmitri R. S.:
weber2005
Последняя для общего пользования, 5.1.2, если не ошибаюсь.
seeryoga:
, какая наиболее стабильная версия PHP 5.xx ?
Последняя...

Эта тема на forum.dklab.ru