Войти

Показать полную графическую версию : PHP 5 - вопросы и критика


Страниц : 1 2 [3]

yalo
10-10-2005, 04:31
Да, у меня Apache 2.0.54. И PHP5 стоит в виде модуля, строчки в httpd.conf'е такие: LoadModule php5_module "C:/PHP/php5apache2.dll", AddType application/x-httpd-php .php
PHPIniDir "C:/php".
Только сомневаюсь, что это связано с Apache 2.0.54, по-моему, это связано с самим PHP5, т.к. на том же Apache 2.0.54 PHP 4-й версии идет нормально, т.е. нет проблем с phpinfo.
Igor_I
Настраничке phpinfo что стоит напротив Server API Вот так там стоит: Apache 2.0 Handler, вроде похоже с http://journals.eecs.qub.ac.uk/phpinfo.php, только вот я обратила внимание, что на http://journals.eecs.qub.ac.uk/phpinfo.php в самом верху PHP 5.0.2, а у меня 5.0.4, может мне установить версию PHP 5.0.2, т.к. она возможно более отлажена?

Igor_I
10-10-2005, 20:22
а у меня 5.0.4, может мне установить версию PHP 5.0.2, т.к. она возможно более отлажена?
Если 5.0.2 немного отлаживается она становиться версией 5.0.3 и т.д. В этой ситуации 4 версия более отлажена.
Только сомневаюсь, что это связано с Apache 2.0.54, по-моему, это связано с самим PHP5,
Проблема может быть в их связке, друг с другом. Есть еще вариант поставить Apache 1 версии.

yalo
23-10-2005, 15:20
Продолжаю изучать PHP5. Запускаю такой код (ПЕРЕПИСАН ИЗ КНИГИ "PHP5, библиотека профессоинала" Леона Аткинсона и Зеева Сураски).
<?php
class ObjectTracker
{
private static $nextSerial = 0;
private $id;
private $name;
function __construct($name)
{
$this->name = $name;
$this->id = ++self::$nextSerial;
}
function __clone()
{
$this->name = "Клон $that->name";
$this->id = ++self::$nextSerial;
}
function getId()
{
return($this->id);
}
function getName()
{
return($this->name);
}
}
$ot = new ObjectTracker("Объект Зеева");
$ot2 = $ot->__clone();
print($ot->getId() . " " .$ot->getName() . "<br>");
print($ot2->getId() . " " .$ot2->getName() . "<br>");
?>

В ответ броузер выдает
Fatal error: Cannot call __clone() method on objects - use 'clone $obj' instead in C:\Program Files\Apache Group\Apache2\htdocs\listing6_4.php on line 27
Послушавшись его, 27-ю строчку исправляю на $ot2 = clone $ot; (может, конечно, неправильно поняла, ЧТО он имел ввиду в своих указаниях: use 'clone $obj' instead in...),
в результате после изменений броузер выдал:

Notice: Undefined variable: that in C:\Program Files\Apache Group\Apache2\htdocs\listing6_4.php on line 14

Notice: Trying to get property of non-object in C:\Program Files\Apache Group\Apache2\htdocs\listing6_4.php on line 14
1 Объект Зеева
2 Клон

Должно быть, конечно же:
1 Объект Зеева
2 Клон Объект Зеева
но так как that почему-то стал Undefined variable имя у клона получается обрезанное на половине...

Underson
25-11-2005, 18:46
что быстре пхп4 или пхп5 на коде написанном в функциональном стиле?
конечно 5 не вопрос там ядро переписано и сильно...
а хостеры не ставят потому как ускорители ПХП версия-зависимы... Но ускоритель для ПХП 5 делает его по скорости практически равным Перлу... потому как реализует то чем перл гордится и все такое.... а именно сохранение байткода в кеше сервера(на скока помню так говрорится)

Igor_I
25-11-2005, 21:40
class ObjectTracker
{
private static $nextSerial = 0;
private $id;
private $name;

function __construct($name)
{
$this->name = $name;
$this->id = ++self::$nextSerial;
}

function __clone()
{
$this->name = "Клон ". $this -> name;
$this->id = ++self::$nextSerial;
}

function getId()
{
return($this->id);
}

function getName()
{
return($this->name);
}

}
$ot = new ObjectTracker("Объект Зеева");
$ot2 = clone ($ot);
print($ot->getId() . " " .$ot->getName() . "<br>");
print($ot2->getId() . " " .$ot2->getName() . "<br>");

По крайней мере выдает нужный результат. :)




© OSzone.net 2001-2012