[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно обращатся к переменним ?
Oggy
Здравствуйте.Хочу $name прикрутить к тексту...

<?php
class
One
{
public function create()
{
$name="John";
}
public function change()
{
$result=$name." Oggy";
echo $result;
}
}


$obj=new One();
$obj->change();
?>




Спустя 2 минуты, 51 секунда (5.10.2012 - 20:39) Winston написал(а):
$this->name;

Спустя 7 минут, 35 секунд (5.10.2012 - 20:46) Oggy написал(а):
Цитата (Winston @ 5.10.2012 - 17:39)
$this->name;

Notice: Undefined property: One::$name in .../index.php on line 10
Oggy

Спустя 13 минут, 11 секунд (5.10.2012 - 21:00) Winston написал(а):
class One
{
public $name;
public function create()
{
$this->name="John";
}
public function change()
{
$result=$this->name." Oggy";
echo $result;
}
}


$obj=new One();
$obj->change();

Спустя 3 минуты, 14 секунд (5.10.2012 - 21:03) -=CASPER=- написал(а):
class One {

private $name;

public function __construct() {
$this->create();
}

private function create() {
$this->name = "John";
}

public function change() {
echo $this->name." Oggy";
}
}


$obj=new One();
$obj->change();

Спустя 1 минута, 43 секунды (5.10.2012 - 21:04) Oggy написал(а):
Цитата (Winston @ 5.10.2012 - 18:00)
class One
{
public $name;
public function create()
{
$this->name="John";
}
public function change()
{
$result=$this->name." Oggy";
echo $result;
}
}


$obj=new One();
$obj->change();

виводится только Oggy

Спустя 2 минуты, 22 секунды (5.10.2012 - 21:07) -=CASPER=- написал(а):
Цитата (Oggy @ 5.10.2012 - 18:04)
виводится только Oggy

Потому что небыл вызван метод create();
Смотри мой пример.

Спустя 1 минута, 5 секунд (5.10.2012 - 21:08) Oggy написал(а):
Цитата (-=CASPER=- @ 5.10.2012 - 18:07)
Цитата (Oggy @ 5.10.2012 - 18:04)
виводится только Oggy

Потому что небыл вызван метод create();
Смотри мой пример.

так ?
$obj=new One();
$obj->create();
$obj->change();

Спустя 3 минуты, 39 секунд (5.10.2012 - 21:12) -=CASPER=- написал(а):
Oggy, если будешь использовать пример Winston'а то да.
Если мой то достаточно просто:
$obj=new One();
$obj->change();

Спустя 9 секунд (5.10.2012 - 21:12) Oggy написал(а):
а можно ето все зделать через параметри в функциях?

Спустя 2 минуты, 15 секунд (5.10.2012 - 21:14) Oggy написал(а):
Цитата (-=CASPER=- @ 5.10.2012 - 18:12)
Oggy, если будешь использовать пример Winston'а то да.
Если мой то достаточно просто:
$obj=new One();
$obj->change();

Спасибо

Спустя 4 минуты, 34 секунды (5.10.2012 - 21:19) -=CASPER=- написал(а):
Oggy, но это какой-то стрёмный пример. Этот будет лучше:
class One {

private $name = 'John';

public function setName($value) {
$this->name = $value;
return $this;
}

public function chande() {
echo 'Your name: '.$this->name.'<br>';
}

}


$one = new One();
$one->chande();
$one->setName('Lili')->chande();
$one->setName('Alex')->chande();

Результат будет:
Your name: John
Your name: Lili
Your name: Alex

Спустя 14 минут, 59 секунд (5.10.2012 - 21:34) Oggy написал(а):
Цитата (-=CASPER=- @ 5.10.2012 - 18:19)
Oggy, но это какой-то стрёмный пример. Этот будет лучше:
class One {

private $name = 'John';

public function setName($value) {
$this->name = $value;
return $this;
}

public function chande() {
echo 'Your name: '.$this->name.'<br>';
}

}


$one = new One();
$one->chande();
$one->setName('Lili')->chande();
$one->setName('Alex')->chande();

Результат будет:
Your name: John
Your name: Lili
Your name: Alex

как добраться до переменной name таким методом?
<?php
class One
{

public function create($name)
{
$name="John";
return $name;
}
public function change()
{
$result=$this->create($name)." Oggy";
}
}

$obj=new One();
$obj->change();
?>

Спустя 1 час, 37 минут, 47 секунд (5.10.2012 - 23:11) -=CASPER=- написал(а):
Oggy, переменная $name доступна только в методе create(). Читай про область видимости переменной.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.