Не работает класс?

Тема в разделе "PHP", создана пользователем new_forward, 21 янв 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. new_forward

    new_forward

    Регистр.:
    5 май 2008
    Сообщения:
    668
    Симпатии:
    44
    Хочу чтоб каждая переменная которую я вставлю в $obj->print_name($test) обрабатывалась тремя функциями, пишу вот так: не работает...


    Код:
    class Name {
           var $one;
    	   
           function print_name($name){
    	   
    	   $name = trim($name);
    	   $name = htmlspecialchars($name);
    	   $name = stripslashes($name);
    	   
    	$this->one = $name;
    	  
          }
    }
        // создать новый объект
    $obj = new Name();
    $test = 'dsadasdasd';
    print $obj->print_name($test);
    
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    ваш метод не возвращает никаких значений
    PHP:
    $obj = new Name();
    $test 'dsadasdasd';
    $obj->print_name($test);
    echo 
    $obj->one;
    или
    PHP:
    function print_name($name){
           
    $name trim($name);
           
    $name htmlspecialchars($name);
           
    $name stripslashes($name);
           
    $this->one $name;
           return 
    $this->one;
    }
     
    new_forward нравится это.
  3. new_forward

    new_forward

    Регистр.:
    5 май 2008
    Сообщения:
    668
    Симпатии:
    44
    Спасибо за ответ а как поступить в таком случае:
    Код:
    class Database {
    
    var $con;
    
    function con_base($base){
    $this->con = 
    require_once( '../configuration.php' );
    .mysql_connect($mosConfig_host, $mosConfig_user, $mosConfig_password) or die("Could not connect: " . mysql_error());
    .mysql_select_db($base); 
    return $this->con;
    }
    }
    $obj = new Database();
    echo $obj->con_base('data');
    хочу при подставленнии в $obj->con_base('data') data - название нужной базы данных, формировалось соединение...?:)

    Мне кажется я неправильно запихиваю код в $this->con...
     
  4. lucky_priest

    lucky_priest Создатель

    Регистр.:
    16 ноя 2009
    Сообщения:
    20
    Симпатии:
    7
    PHP:
    class Database {
        public 
    $con;
        function 
    con_base($base){
            require_once( 
    '../configuration.php' );
            
    $this->con mysql_connect($mosConfig_host$mosConfig_user$mosConfig_password) or die("Could not connect: " mysql_error());
            
    mysql_select_db($base$this->con); 
        }
    }
    $obj = new Database();
    $obj->con_base('mega_base');
    // в $obj->con лежит коннэкшен
     
  5. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    Какой смысл использовать вообще классы, если даже конструктора нет?
     
  6. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    А конструтор и не важен вообще. С одной стороны класс получает уже основные примочки ООП (наследование, полиморфизм, инкапсуляция), а с другой гибкость (Инверсия зависимостей).

    Конструктор - всего лишь один из способов задания параметров объекта. Не более.
     
  7. BasTaller

    BasTaller Постоялец

    Регистр.:
    29 янв 2009
    Сообщения:
    52
    Симпатии:
    1
    PHP:
    class Name {
           var 
    $one;
           function 
    print_name($name){
           
    $name trim($name);
           
    $name htmlspecialchars($name);
           
    $name stripslashes($name);
        
    $this->one $name;
          }
    }
        
    // создать новый объект
    $obj = new Name();
    $test 'dsadasdasd';
    print 
    $obj->print_name($test);
    Можно и без return.

    Но тогда:
    PHP:
    $obj=new Name();
    $test 'dsadasdasd';
    $obj->print_name($test); //но тогда по сути функция должна называться не print_name, а set_name
    print $obj->one;
     
Статус темы:
Закрыта.