Home > Article > Backend Development > PHP object-oriented class_PHP tutorial
Let's talk about Class in PHP. The languages used for expression are informal languages.
Creating a class is very simple:
class my_class {}
What exactly does a class do? Many people say it is a black box, but I call it an independent whole here. We only know the class name, but not what is inside. So, how to use this class?
First of all: you need to know whether there are public variables defined in it--called "properties" in professional terms.
Secondly: You need to know what function is defined in it - it is called a "method" in professional terms.
I was confused by these technical terms, so I simply ignored it.
How to define public variables in a class and what does it do?
It’s very simple, let’s extend the my_class class:
class my_class
{
var $username;
}
Looking at the above is very simple, we A public variable is defined, which is just composed of ordinary variable names using var and spaces. What is it used for? Consider a function. If we want to access variables outside the function, do we need to make it global first? The same is true for this effect, which is to allow all functions in this class to access it, and one thing that distinguishes it from functions is that the outside of the class can also access and control this variable at any time. I will talk about the outside later. How to access it. There is another difference. You cannot use complex statements to assign a value to this variable (see the rules for yourself after you understand the class).
Give it a default value:
class my_class
{
var $username = "Deep Space";
}
OK, defined A public variable, then define a function (also called a "method"):
class my_class
{
var $username = "Deep Space";
function show_username()
{
}
}
This defined function is no different in form from an ordinary defined function. Just keep it simple, define a function that prints $username:
class my_class
{
var $username = "deep space";
function show_username($username)
{
echo $username;
}
}
Some people may be confused at this point, haha, the most important thing is here, see clearly. There are now three $usernames. Which one is which~~
There is no need to explain the formal parameters of the function, right? The function of this function is to print the value received by the formal parameter, that is, if:
show_username("Pig's Head Deep Space");
then it will print "Pig's Head Deep Space", it's that simple .
How to access this function? It's definitely not the direct show_username("Pig Head Deep Space"); as I said above. Don't worry, there are different classes. As follows:
$Name = new my_class();
This initializes the my_class class above and assigns this object to the variable $Name. You can understand this variable It represents the entire category, haha.
Use the function in the class:
$Name->show_username("Pig Head Deep Space");
I'm confused, why is it so complicated? Want an arrow? It's actually very vivid. You have already given the class to the variable $Name, right? That is, $Name represents the class, and then an arrow points to the show_username function in the class. It's that simple, that is to say, this function is in this class, not other functions - you can understand it as indicating a difference, haha.
Try it and print out the four words "Pig Head Deep Sky". Why do you think it's so complicated? Isn’t it also possible to use functions? I said, of course you can’t see the benefits of such a simple thing, let’s continue to expand.
Another question is: Why are the "public variables" mentioned just now useless? Why doesn't this function automatically receive the default value in this public variable var $username? That is, if I use:
$Name->show_username($username);
What will be the result? The answer is that there is no output. Because you didn't give the formal parameter $username a value.
So how to use this public variable? Let’s modify this class:
class my_class
{
var $username = "Deep Space";
function show_username()
{
echo $ this->username;
}
}
Wow, isn’t it? There are no formal parameters this time? There is also an extra $this->, which makes me dizzy, haha. In fact, this is also one of the biggest conveniences of classes.
The role of $this: access a public variable or a function in a class.
Visit? So professional? In fact, $this->username is used instead of var $username. $this is used to indicate that it is public, accessible, and something outside the function (such as other variables or functions).
Try it:
$Name->show_username();
See it, finally the words "Deep Space" are printed, Wahaha.
I don’t want to print the words “Deep Space”. I want to print “Pig Head Deep Space”. What should I do? It's very simple, we reassign this public variable. I'm impressed with you.
$Name->username = "Pig Head Deep Sky";
Do you understand the meaning of this? $Name->username represents this public variable in the class. I don’t need to explain the equal sign assignment.
Let’s print it again:
$Name->show_username();
Haha, finally printed “Pig Head Deep Space”. Not bad, it's very convenient. You can modify the printed value arbitrarily without formal parameters~~.
But just printing a name is too boring. Let’s say something welcome. Let’s extend this class and create a function called Welcome:
class my_class
{
var $username = "deep space";
function show_username()
{
echo $this->username;
}
function Welcome()
{
}
}
Well, what function can be implemented? To make it simple, just have the word "welcome" in front of the name
class my_class
{
var $username = "deep space";
function show_username ()
{
echo "Welcome";
$this-> ;show_username();
}
}
Did you see $this for the second time? It's a little different from last time. What is $this->show_username(); used for? Points to a function in the class. In fact, it calls the show_username function. Use $this to indicate that this function is in the class and parallel to the Welcome function, rather than elsewhere (such as the Welcome function).
The function implemented by the Welcome function is very simple. First, print two words "Welcome", and then execute the show_username function to print the name.
Let’s try this function:
$Name->Welcome();
See it, print out the words "Welcome to Deep Space" .
But I want to print "Welcome to Pig Head Deep Space", what should I do? I'm convinced, let's give the public variable var $username a value:
$Name->username = "Pig Head Deep Space";
Next, print the welcome message:
$Name->Welcome();
Hehe, "Welcome to Pig Head Deep Space" is finally printed.
How about it? Do you understand the usage of classes? The advantage is that you can call any function in the class. As long as you point it out with $this, you can change the value of a public variable. You can use this public variable in the function in the class. .........There are so many, and its applications are waiting for you to discover.
http://www.bkjia.com/PHPjc/486214.html