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

Форум PHP

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

 

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

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

тема: Методы класса (вопрос ученика)
 
 автор: worldmen   (15.11.2007 в 22:45)   письмо автору
 
 

Осваиваю классы на PHP. Из книги переписал пример (книга для PHP 5, у меня стоит Денвер с PHP4)
Примеры (commodity.php):

<?
class Commodity {
    public 
$name;            // название товара
    
public $category;        // категория товара
    
public $price;            // цена
    
public $availability;    // наличие на складе
    
    // Конструктор
    
function __construct($name$category$price=null$availability=False)
    {
        echo 
'Запущен конструктор...<br/>';
        
$this->name $name;
        
$this->category =$category;
        
$this->price $price;
        
$this->availability $availability;
    }
    
    
//Деструктор
    
function __destruct()
    {
        echo 
'Запущен деструктор ...<br/>';
    }
    
    function 
getPrice()
    {
        return (
is_null($this->price) ? 'N/A' $this->price);
    }
    
    function 
setPrice($new_price)
    {
        
$this->price $new_price;
    }

и второй файл:

<?
  
require_once('commodity.php');
  
  
$obj = new Commodity('Разработка Web-приложений на PHP 5','book');
  echo 
$obj->name .' - '$obj ->getPrice() . '<br/>';
  
$obj->setPrice(230.0);
  echo 
$obj->name ' - ' $obj->getPrice() . '<br/>';
?>

И при запуске выдает :

Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in 
y:\home\localhost\www\class01\commodity.php on line 11

Это из-за того что не тот PHP ?

   
 
 автор: Санька   (15.11.2007 в 22:59)   письмо автору
 
   для: worldmen   (15.11.2007 в 22:45)
 

Пример из книги и с ошибкой! А вы дальше не читали? А то бывает показывают ошибки в коде, а потом правильный примет. Я встречал в своей книге.

   
 
 автор: Worldmen   (15.11.2007 в 23:07)   письмо автору
 
   для: Санька   (15.11.2007 в 22:59)
 

Нет. Дальше в книге пишется:
"В результате выполнения наша программа выведет следующее.
Запущен конструктор...
Разработка Web-приложений на PHP 5 - N/A
Разработка Web-приложений на PHP 5 - 230
Запущен деструктор...
"

   
 
 автор: bronenos   (15.11.2007 в 23:14)   письмо автору
 
   для: Worldmen   (15.11.2007 в 23:07)
 

не та версия php. protected, private, public поддерживаются с пятой версии. в четвертой вы можете оперировать только словом var

и еще в четвертой версии конструктор = метод с именем класса, а деструктора нет совсем

   
 
 автор: Worldmen   (15.11.2007 в 23:23)   письмо автору
 
   для: bronenos   (15.11.2007 в 23:14)
 

Спасибо все получилось

   
 
 автор: cheops   (16.11.2007 в 13:27)   письмо автору
 
   для: worldmen   (15.11.2007 в 22:45)
 

Объектные модели PHP 4 и PHP 5 очень сильно отличаются - следует использовать версию PHP 5.

   
 
 автор: Worldmen   (16.11.2007 в 23:44)   письмо автору
 
   для: cheops   (16.11.2007 в 13:27)
 

Наш сайт написан разработчиками на PHP4 так как и на хостинге стоит PHP4.
Знаний у меня маловато, поэтому разбираю то что написали они, чтоб самому делать изменения.
И первый вопрос

Class MySQL
{
    var $prefix=''; // Global MySQL resource of class.
    function MySQL(){
        if (empty($_SESSION[CONN])) $this->connect($GLOBALS[CFG][Db][Host],$GLOBALS[CFG][Db][User],$GLOBALS[CFG][Db][Password],
        $GLOBALS[CFG][Db][Database]);
        $this->prefix=$GLOBALS[CFG][Db][Prefix];
    } 

что такое $GLOBALS[CFG][Db][User] , а конкретно CFG,Db,User - я не нашел где они объявляются.
Я так понял - этот класс отвечает за соединение с базой.
-------------------------
вот нашел описание выше :
$CFG = parse_ini_file("./include/config.php", true);
а в config.php нашел пункт:
[Db]
Host = ....
User=...
...
Password = ...
Prefix = ...
[Password]
....
---------------------------------

   
 
 автор: bronenos   (17.11.2007 в 00:07)   письмо автору
 
   для: Worldmen   (16.11.2007 в 23:44)
 

$GLOBALS['CFG']['Db']['User'] ~ global $CFG; $CFG['Db']['User']

parse_ini_file парсирует файл и создает соответствующие переменные

   
Rambler's Top100
вверх

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