Это может означать, что вы получили (старый) код php4 и должны перенести его на php5.
В этом случае код должен работать с настройкой error_reporting(E_ALL|E_STRICT)
без предупреждающих сообщений. Также проверьте описание каждой функции / метода, содержит ли она примечание / предупреждение "Эта функция УСТАРЕЛА".
Наиболее вероятные кандидаты: сессии, классы, ereg (регулярные выражения posix), может быть, даже register_globals и allow_call_time_pass_reference .
Возможно, вы также должны заметить использование «старых» обходных путей и заменить их новыми функциями. Э.Г.
// $s = preg_replace('/foo/i', 'bar', $input);
// use php5's str_ireplace() instead
$s = str_ireplace('foo', 'bar', $input);
Но это зависит от тем, которые вы затронули.
например. «Перенести этот код php4 на php5»:
<?php
class Foo {
var $protected_v;
function Foo($v) {
$this->protected_v = $v;
}
function doSomething() {
if ( strlen($this->protected_v) > 0 ) {
echo $this->protected_v{0};
}
}
}
session_start();
if ( session_is_registered($bar) ) {
$foo = new Foo($bar);
$foo->doSomething();
}
И ответ может быть
<?php
class Foo {
// php5 introduced visibility modifiers
protected $v;
// the "preferred" name of the constructor in php5 is __construct()
// visibility modifiers also apply to method declarations/definitions
public function __construct($v) {
$this->v = $v;
}
public function doSomething() {
if ( strlen($this->v) > 0 ) {
// accessing string elements via {} is deprecated
echo $this->v[0];
}
}
}
session_start();
// session_is_registered() and related functions are deprecated
if ( isset($_SESSION['bar']) ) {
$foo = new Foo($_SESSION['bar']);
$foo->doSomething();
}