Object PHP
10 отговора
356 прегледа
Object PHP
zdravejte
eto edin kod kojto ne vyrwi pri mene:
<?php
class PrintName
{
var $name;
function show_name()
{
echo "Hi $name!";
}
}
$tmp = new PrintName;
$tmp -> name = "Alice";
$tmp -> show_name();
?>
Da ne bi nqkakwa nastrojka da trqbwa da se butno v php-to, tuk kato principno nqma kude da se sgre6i na tozi kod, suob6tenie za gre6ka ne dawa, izwejda kato rezultata samo "Hi", a stojnostta na promenliwata $name="Alice" ne q wizualizira.
eto edin kod kojto ne vyrwi pri mene:
<?php
class PrintName
{
var $name;
function show_name()
{
echo "Hi $name!";
}
}
$tmp = new PrintName;
$tmp -> name = "Alice";
$tmp -> show_name();
?>
Da ne bi nqkakwa nastrojka da trqbwa da se butno v php-to, tuk kato principno nqma kude da se sgre6i na tozi kod, suob6tenie za gre6ka ne dawa, izwejda kato rezultata samo "Hi", a stojnostta na promenliwata $name="Alice" ne q wizualizira.
Re: Object PHP
>principno nqma kude da se sgre6i na tozi kod
Винаги е нещо малко:
$tmp = new PrintName;
трябва да бъде:
$tmp = new PrintName();
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Винаги е нещо малко:
$tmp = new PrintName;
трябва да бъде:
$tmp = new PrintName();
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Re: Object PHP
towa koeto kazwash za $tmp = new PrintName();
ne e wqrno, t.e to moje da e vqrno ne pak ne stawa taka.
a vsi4ki primeri koito sum gledal kato se suzdawa instanciq na klas - suzdawane na obekt e:
$tmp = new PrintName;
e ne
$tmp = new PrintName();
ne e wqrno, t.e to moje da e vqrno ne pak ne stawa taka.
a vsi4ki primeri koito sum gledal kato se suzdawa instanciq na klas - suzdawane na obekt e:
$tmp = new PrintName;
e ne
$tmp = new PrintName();
Re: Object PHP
ахам... и този код защо работи при мен?
<?php
require_once( '../Category.php' );
$pers = new CategoryPersister();
$categories = $pers->getAll();
?>
и защо не пуснеш грешката, която получаваш?
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
<?php
require_once( '../Category.php' );
$pers = new CategoryPersister();
$categories = $pers->getAll();
?>
и защо не пуснеш грешката, която получаваш?
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Re: Object PHP
чак сега погледнах - остави си навиците от Ц++ или джава на вратата на клуба :)
function show_name()
{
echo "Hi $name!";
}
за да имаш достъп до атрибута name трябва да си го поискаш с $this->name;
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
function show_name()
{
echo "Hi $name!";
}
за да имаш достъп до атрибута name трябва да си го поискаш с $this->name;
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Re: Object PHP
s $this->name mi e qsno 4e raboti
ama tozi primer go vseh ot edna kniga na PHP i 1:1 go pisha i ne stawa
ina4e s this nqma problemi , 6toto se obru6tam vutre v clasa, a ina4e kato izlqza ot nego i suzdam obekt i mu proswoq stojnost na poleto ot klasa ne stawa.
taka kakto sum opisal v primera
ama tozi primer go vseh ot edna kniga na PHP i 1:1 go pisha i ne stawa
ina4e s this nqma problemi , 6toto se obru6tam vutre v clasa, a ina4e kato izlqza ot nego i suzdam obekt i mu proswoq stojnost na poleto ot klasa ne stawa.
taka kakto sum opisal v primera
Re: Object PHP
Муслон правилно ти каза за $this->, но не знам дали разбра къде да го сложиш...
Ето ти кода (явно са направили пропуск, било автори, било издатели - случва се):
<?php
class PrintName
{
var $name;
function show_name() {
echo "Hi $this->name!";
}
}
$tmp = new PrintName;
$tmp -> name = "Alice";
$tmp -> show_name();
?>
Когато искаш да предадеш аргумент в метода(функцията) - ЗАДЪЛЖИТЕЛНО му поставяш $this-> ! Някъде в книжката ти трябва да е подчертано, ако не - отбележи си го!
Ето ти кода (явно са направили пропуск, било автори, било издатели - случва се):
<?php
class PrintName
{
var $name;
function show_name() {
echo "Hi $this->name!";
}
}
$tmp = new PrintName;
$tmp -> name = "Alice";
$tmp -> show_name();
?>
Когато искаш да предадеш аргумент в метода(функцията) - ЗАДЪЛЖИТЕЛНО му поставяш $this-> ! Някъде в книжката ти трябва да е подчертано, ако не - отбележи си го!
Re: Object PHP
napulno go razbiram kude se slaga $this, taka sum go probwal s this i stawa nqma problemi,poblema 4e ima konstrukciq v koqto ne se polzwa $this , no za sujalenie ne starbowa ne6to,ne dawa nikakwa gre6ka no ne prisvoqwa stojnost na poleto koeto e definirano v classa
Re: Object PHP
Дано си разбрал и "ЗАЩО?" !
Не знам от къде четеш и какво експериментираш, но си има ЯСНО НАПИСАН СИНТАКСИС:
За достъп до атрибут на обект се използва синтаксиса: $this->attribute. Форматът this->$attribute посмъртно няма да ти сработи (поне не и във версия 4). А това: $this->$attribute ще работи само ако $attribute е низ, който съдържа името на атрибута за използване.
var $attrib;
...
$attrib_name="attrib";
echo $this->$attrib_name;
Всичко това работи и за функции.
НЯМА други конструкции, комбинации, конфигурации и каквото и да е там...
Просто НЯМА ! СИНТАКСИС !
Не знам от къде четеш и какво експериментираш, но си има ЯСНО НАПИСАН СИНТАКСИС:
За достъп до атрибут на обект се използва синтаксиса: $this->attribute. Форматът this->$attribute посмъртно няма да ти сработи (поне не и във версия 4). А това: $this->$attribute ще работи само ако $attribute е низ, който съдържа името на атрибута за използване.
var $attrib;
...
$attrib_name="attrib";
echo $this->$attrib_name;
Всичко това работи и за функции.
НЯМА други конструкции, комбинации, конфигурации и каквото и да е там...
Просто НЯМА ! СИНТАКСИС !
Re: Object PHP
Кажи коя книга четеш. Пусни кода от книгата тук. Като нищо имаш глобална или локална променлива със същото име като атрибута и без $this се обръща към нея.
Ако още не вярваш, че ти трябва $this, за да се обърнеш към атрибут на класа - дръпни някой от PEAR пакетите. Аз не съм авторитет, като PEAR разработчиците, само използвам обекти и класове в езика
.
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Ако още не вярваш, че ти трябва $this, за да се обърнеш към атрибут на класа - дръпни някой от PEAR пакетите. Аз не съм авторитет, като PEAR разработчиците, само използвам обекти и класове в езика
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Re: Object PHP
<?php
class showName {
var $myName = '';
function showName($your_name) {
$this->myName = $your_name;
return $this->myName;
}
}
$name = new showName('Mitko Angelov');
echo 'Hello from me. I am ' . $name;
?>
class showName {
var $myName = '';
function showName($your_name) {
$this->myName = $your_name;
return $this->myName;
}
}
$name = new showName('Mitko Angelov');
echo 'Hello from me. I am ' . $name;
?>