Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Warning: The magic method __call() must have public visibility and cannot be static in
 
 автор: Фоат   (03.11.2011 в 19:16)   письмо автору
 
 

Примеры с учебника ООП на PHP Кузнецова. Выходят сообщения об ошибках .


Warning: require(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for '3.0/no DST' instead in E:\Program Files\Apache Software Foundation\Apache2.2\htdocs\myOOP\call.php on line 7 Warning: The magic method __call() must have public visibility and cannot be static in E:\Program Files\Apache Software Foundation\Apache2.2\htdocs\myOOP\call.php on line 7





call.php

<?php
class minmax
{

    private function  
__call($method$arg)
    {
        if(!
is_array($arg)) return false;
        
$value $arr[0];

        if(
$method == "min")
        {
            for(
$i 0$i count($arg); $i++)
            {
                if(
$arg[$i] <  $value)  $value $arg[$i];

            }


        }
        
        if(
$method == "max")
        {
            for(
$i 0$i count($arg); $i++)    
            {
                if(
$arg[$i] > $value$value $arg[$i];

            }
        
        }
return 
$value;

    }


}

?>



minmax.php


<?php
require_once("call.php");

$obj = new minmax();

echo 
$obj->min(1234,  642334,  45);

echo 
"<br>";

echo 
$obj->max(1234,  642334,  45);

?>

  Ответить  
 
 автор: KPETuH   (03.11.2011 в 19:23)   письмо автору
 
   для: Фоат   (03.11.2011 в 19:16)
 

Это не ошибки, а предупреждения. Чтобы убрать именно эти нужно выставить часовой пояс в начале скрипта например так

if (function_exists('date_default_timezone_set')) date_default_timezone_set('Europe/Moscow');

  Ответить  
 
 автор: cheops   (03.11.2011 в 19:35)   письмо автору
 
   для: Фоат   (03.11.2011 в 19:16)
 

Первое предупреждение связано с часовым поясом, чтобы выставить его следует добавить в конфигурационный файл php.ini следующее значение date.timezone
[Date]
date.timezone = "Europe/Moscow"

Файл call.php следует исправить следующим образом (разработчики PHP поправили кавардак с private/public, который имел место на момент написания книги)
<?php 
class minmax 

    public function  
__call($method$arg
    { 
        if(!
is_array($arg)) return false
        
$value $arg[0]; 

        if(
$method == "min"
        { 
            for(
$i 0$i count($arg); $i++) 
            { 
                if(
$arg[$i] <  $value)  $value $arg[$i]; 

            } 


        } 
         
        if(
$method == "max"
        { 
            for(
$i 0$i count($arg); $i++)     
            { 
                if(
$arg[$i] > $value$value $arg[$i]; 

            } 
         
        } 
        return 
$value
    } 


?>

  Ответить  
 
 автор: Фоат   (03.11.2011 в 19:47)   письмо автору
 
   для: cheops   (03.11.2011 в 19:35)
 

Спасибо за советы . в Php.ini прописал. А про то что должны были быть методы открыты догадывался по сообщению об ошибке. Спасибо вам всем!

  Ответить  
 
 автор: Фоат   (04.11.2011 в 01:40)   письмо автору
 
   для: Фоат   (03.11.2011 в 19:47)
 

кстати , там еще одна ошибка , везде где висит переменная массив $arg должен быть $arr

  Ответить  
 
 автор: cheops   (04.11.2011 в 12:24)   письмо автору
 
   для: Фоат   (04.11.2011 в 01:40)
 

Да, есть такое дело.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования