Mam takie pytanie na google nie znalazłem, a mianowicie co oznacza :: coś w php
np. JLoader::import();
Bo według mnie to nie jest odwołanie się to funkcji w obiekcie.
Patryk27 napisał(a):
Ale tam nie było przykładu wykorzystania tego w PHP.
Masz podaną najdokładniejszą możliwą nazwę tego operatora w PHP, a i tak nie potrafisz odnaleźć tego w dokumentacji?
http://www.php.net/manual/en/keyword.paamayim-nekudotayim.php
http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php
Jeszcze mam jedno pytanie bo tam nie było wyjaśnione czy zapomocą :: możemy się również odwoływać do zmiennych klasowych bo tylko były przykłady z funkcjami.
np.
<?php
class A {
function example() {
echo "I am the original function A::example().<br />\n";
}
}
class B extends A {
function example() {
echo "I am the redefined function B::example().<br />\n";
A::example();
}
}
// there is no object of class A.
// this will print
// I am the original function A::example().<br />
A::example();
// create an object of class B.
$b = new B;
// this will print
// I am the redefined function B::example().<br />
// I am the original function A::example().<br />
$b->example();
?>
Mój przykład
<?php
class A {
function example() {
echo "I am the original function A::example().<br />\n";
}
}
class B extends A {
public $a;
function example() {
echo "I am the redefined function B::example().<br />\n";
A::example();
print $this->a;
}
}
// there is no object of class A.
// this will print
// I am the original function A::example().<br />
A::example();
B::a = 5; //to nie zadziała czemu
B::$a = 5; //to też
B::$this->a = 5; //to też
// create an object of class B.
$b = new B;
// this will print
// I am the redefined function B::example().<br />
// I am the original function A::example().<br />
$b->example();
?>
B::$a
zadziała
edit: no tak, ale $a musi być statyczne (słówko static).
generalnie nazwa_klasy::statyczna_metoda();
albo nazwa_klasy::$statyczny_atrybut
- jeżeli nie wiemy co to statyczność no to google/manual
ps. wywołanie niestatycznej funkcji statycznie jest możliwe, ale wygeneruje ostrzeżenie. no i gdy w metodzie mamy $this
no to skończy się to fatal errorem ;)