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

Форум PHP

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

 

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

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

тема: объекты и get_class_vars
 
 автор: 1999   (13.04.2006 в 18:14)   письмо автору
 
 

Почему при обработке такого кода

<?php
class Student
{
  var 
$lastname;
  var 
$name;
  var 
$group;

  function 
Student($lastname,$name,$group)
  {
    
$this->lastname $lastname;
    
$this->name $name;
    
$this->group $group;
  }

  function 
showStudent()
  {
    return 
get_class_vars("Student");
  }
}
?>

<?php
$student1 
= new Student("Макаров","Андрей","2508");

echo 
"<pre>";
print_r($student1->showStudent());
echo 
"</pre>";
?>

мне выдается

Array
(
    [lastname] => 
    [name] => 
    [group] => 
)

а не

Array
(
    [lastname] => Макаров
    [name] => Андрей
    [group] => 2508
)

Куда же деваются все переменные из конструктора?
И еще вопрос: куда сувать тот самый пресловутый __construct?
У меня php5.1.2

   
 
 автор: codexomega   (13.04.2006 в 20:31)   письмо автору
 
   для: 1999   (13.04.2006 в 18:14)
 

Замените функцию function Student на _construct

   
 
 автор: 1999   (14.04.2006 в 01:45)   письмо автору
 
   для: codexomega   (13.04.2006 в 20:31)
 

хм... заменил а разницы никакой
теперь вот код:

<?php
class Student
{
  var 
$lastname;
  var 
$name;
  var 
$group;

  function 
__construct($lastname,$name,$group)
  {
    
$this->lastname $lastname;
    
$this->name $name;
    
$this->group $group;
  }

  function 
showStudent()
  {
    return 
get_class_vars("Student");
  }
}
?>

<?php
$student1 
= new Student("Макаров","Андрей","2508");
echo 
"<pre>";
print_r($student1->showStudent());
echo 
"</pre>";
?>

и выводит то же самое
в чем дело?
и что получается мне придется для разных версий пхп писать разные конструкторы?

   
 
 автор: codexomega   (14.04.2006 в 02:01)   письмо автору
 
   для: 1999   (14.04.2006 в 01:45)
 

А вы не пробовали проставить значения переменных до конструктора?


  var $lastname ="Макаров"; 
  var $name = "Андрей"; 
  var $group = "2508"; 


Если и это не сработает, значит функция не та или ошибка в коде...

   
 
 автор: Саша   (14.04.2006 в 10:15)   письмо автору
 
   для: codexomega   (14.04.2006 в 02:01)
 

<?php 
class Student 

  var 
$lastname 
  var 
$name
  var 
$group

  function 
Student($lastname,$name,$group
  { 
    
$this->lastname $lastname
    
$this->name $name
    
$this->group $group
  } 

$student1 = new Student("Макаров","Андрей","2508"); 

echo 
"<pre>"
print_r(get_object_vars($student1)); 
echo 
"</pre>"
?>

   
Rambler's Top100
вверх

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