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

Форум PHP

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

 

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

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

тема: Значения переменных функции(метода) в классе по умолчанию?
 
 автор: bobroff   (20.03.2009 в 22:24)   письмо автору
 
 

Здравствуйте. Думаю вопрос простой, но самостоятельно ответ найти не удалось.

К примеру есть класс:
class db { 

var $db_login="root";
var $db_password="root";
var $db_host="localhost";

var $db_connection;

function db_connect($host,$login,$password) {
$this->db_connection=mysql_connect($host,$login,$password);
}
}


Как сделать следующее: при вызове метода db_connect, если не переданы параметры $host, $login, $password, то устанавливаются параметры по умолчанию: $db_login, $db_password, $db_host.

Код, вида:
function db_connect($host=$this->db_host,$login=$this->db_login,$password=$this->db_password) {
$this->db_connection=mysql_connect($host,$login,$password);

...в не работает.

Самому, как новичку, приходит в голову только проверка каждого параметра через isset(). Но, мне кажется, должно быть более простое решение. Подскажите.

  Ответить  
 
 автор: newProgrammer   (21.03.2009 в 01:18)   письмо автору
 
   для: bobroff   (20.03.2009 в 22:24)
 

Можно так
<?php
class DB {
    private 
$host 'localhost';
    private 
$user 'root';
    private 
$pass '';
    
    private 
$link NULL;
    
    public function 
__construct($user ''$pass ''$host '') {
        if (!empty(
$user)) $this->user $user;
        if (!empty(
$pass)) $this->pass $pass;
        if (!empty(
$host)) $this->host $host;
    }
    
    public function 
connect() {
        
$this->link mysql_connect($this->host,$this->user,$this->pass);
    }
}
?>

и так
<?php
class DB {
    private 
$host;
    private 
$user;
    private 
$pass;
    
    private 
$link NULL;
    
    public function 
__construct($user 'root'$pass ''$host 'localhost') {
        
$this->user $user;
        
$this->pass $pass;
        
$this->host $host;
    }
    
    public function 
connect() {
        
$this->link mysql_connect($this->host,$this->user,$this->pass);
    }
}
?>

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

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