Calls to static and static methods in object-oriented PHP

Source: Internet
Author: User
In this paper, we analyze the static and static methods in the object-oriented PHP call. About their invocation (can be called, how to call), need to figure out where they are stored in memory, so it is very easy to understand. Static properties, methods (both static and non-static) in memory, only one location (not a static property, how many objects are instantiated, and how many properties).

Instance:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21st

22

23

24

header("content-type:text/html;charset=utf-8");

classHuman{

staticpublic$name= "小妹";

public$height= 180;

staticpublicfunctiontell(){

echoself::$name;//静态方法调用静态属性,使用self关键词

//echo $this->height;//错。静态方法不能调用非静态属性

//因为 $this代表实例化对象,而这里是类,不知道 $this 代表哪个对象

}

publicfunctionsay(){

echoself::$name. "我说话了";

//普通方法调用静态属性,同样使用self关键词

echo$this->height;

}

}

$p1= newHuman();

$p1->say();

$p1->tell();//对象可以访问静态方法

echo$p1::$name;//对象访问静态属性。不能这么访问$p1->name

//因为静态属性的内存位置不在对象里

Human::say();//错。say()方法有$this时出错;没有$this时能出结果

//但php5.4以上会提示

?>

Conclusion:

1, static property calls, with self::, either static or non-static methods can call static properties;

2, static methods can call non-static methods, using the Self keyword. In PHP, a method is self: after that, it automatically transforms into a static method;

3. Static methods cannot invoke non-static properties. Because the non-static attribute needs to be instantiated, it is stored in the object;

The above describes the PHP object-oriented static properties and static methods of the call, including the aspects of the content, I hope that the PHP tutorial interested in a friend helpful.

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.