Home  >  Article  >  PHP Framework  >  The old driver actually overturned in judging the return result (ThinkPHP)

The old driver actually overturned in judging the return result (ThinkPHP)

咔咔
咔咔Original
2021-01-08 10:14:411387browse
"

This article is basic content. If you see it, please check whether your own code has the same problem

"

Preface

Little Q comes again with a question. Today’s question is probably one that most comrades will make.

The problem is to determine whether the result returned by the query is empty when using ThinkPHP.

Aren’t you very confident? What’s wrong with this? It’s just empty! If you think so, then simply read the article!

The reason for this problem is that it is not clear what type the results returned by the framework query database are. Knowing the type is a very simple problem.

The old driver actually overturned in judging the return result (ThinkPHP)
Smile away the grudges

1. Reappearance of the problem

The database is very simple, just a table user. There is no data in this table, it is an empty table.

The old driver actually overturned in judging the return result (ThinkPHP)
Database

Then use the ThinkPHP framework to query the data of this table

The old driver actually overturned in judging the return result (ThinkPHP)
Query code

Little Q will give you three seconds to think about what value will be returned here. Either return no data yet, or return data from the user table.

Little Q said without hesitation that no data will be returned because there is no data in the user table at all.

So let’s take a look at the printed results.

Xiao Q opened his eyes wide and did not see the four words "no data yet". Instead, an empty array was returned (I think so for the time being).

Here we temporarily think that this is an empty array. In fact, it just looks like an array. The real data structure is a result set. As for what a result set is, you can decide by yourself. Baidu!

The old driver actually overturned in judging the return result (ThinkPHP)
Return results

At this time, Little Q was confused! How did that happen! At Xiao Q’s strong request, the date data was printed

The old driver actually overturned in judging the return result (ThinkPHP)
I hope it’s not you

The return result is still an empty array (I think so for the time being)

The old driver actually overturned in judging the return result (ThinkPHP)
Return result

Then judging whether an array is empty must be done by empty(), right!

Little Q nodded confidently. There must be no problem this time. I have been writing this way for several years, and I use empty to judge.

The old driver actually overturned in judging the return result (ThinkPHP)
Confident You

In order to let Xiao Q see the urn crying, Kaka can only judge whether the value is empty once. .

The code is as follows

The old driver actually overturned in judging the return result (ThinkPHP)
Code print

Little Q had a bright smile on his face, and I couldn’t bear to click the request button .

Having no choice but to meet Xiao Q’s expectations, he cruelly pressed the request button.

The old driver actually overturned in judging the return result (ThinkPHP)
Return result

After seeing the return result above, the smile on Xiao Q’s face suddenly stopped, followed by a face full of doubts big face plate.

The old driver actually overturned in judging the return result (ThinkPHP)
Doubts

Checked the written judgment code again to see if there is any problem.

I have been in the battlefield for decades, copy and paste, just pick up the keyboard and do it. How could I write this code wrong?

Xiao Q finally couldn't sit still and asked with a smile, what's going on!

The old driver actually overturned in judging the return result (ThinkPHP)
小Q's smile

Finally we are coming to the point. Please continue to see how to make Xiao Q understand the truth.

2. Solve the problem

It is urgent to check whether the returned data is what we insist on. Array, check it next.

So I picked up the keyboard and typed eight times, and that was the is_array function.

Initiate the request again

The old driver actually overturned in judging the return result (ThinkPHP)
Print the result

At this time, Xiao Q’s expression is like this, this time it is really messy

The old driver actually overturned in judging the return result (ThinkPHP)
You were not like this before

So I opened the official website document calmly and gave Xiao Q a look

The official website clearly states that the result returned by the data is the data set, and it is the default in version 5.1.

The old driver actually overturned in judging the return result (ThinkPHP)
Official website documentation

Continue reading and you will see what the additional methods are. The first one is to recognize whether it is empty or not.

Little Q said in shock, Damn it, it can’t be judged in this way!

The old driver actually overturned in judging the return result (ThinkPHP)
Additional methods

Just check it.

The old driver actually overturned in judging the return result (ThinkPHP)
Detection code

Little Q finally said with runny nose and tears, I thought there was something wrong with my eyes!

Why can’t we tell that it’s obviously empty data? He let out a long breath.

The old driver actually overturned in judging the return result (ThinkPHP)
Return results
"

Little Q looked at me with a confused look and said, since using After adopting the 5.1 framework, all judgments are written like this. Xiao Q hurriedly ran out and said only one sentence, hurry up and fix the code before there are no problems online, otherwise I will be laid off. The old driver actually overturned in judging the return result (ThinkPHP)

Having solved Xiao Q’s problem, let’s talk about other things.

3. Extension

After solving Xiao Q’s problem, let’s talk about some serious topics.

There is an omitted problem in the above article, that is empty, in PHP To determine whether the array is empty, empty is used.

Xiao Q firmly believes that this is the case, so can this usage still be used in the framework?

There must be no problem! Look at the picture below

The old driver actually overturned in judging the return result (ThinkPHP)
Code

The returned result must be the same as expected. The truth is always the truth.

The old driver actually overturned in judging the return result (ThinkPHP)
Return results

4. Summary

A summary for Xiao Q, the essence is always so simple.

Although the returned results can be modified in the database configuration file, it is not recommended to modify it.

Since the framework has defaulted to the result set, then use the result set. If you have to use an array, that is okay.

After Xiao Q’s question, we need to pay attention to the following issues.

  • When using find query, if the result is empty and the returned result is null, then you can use for judgment! To judge
  • When using select query, if the result is empty, the returned result is an empty result set. You can use the additional function toArray() of the result set to convert it to Array, and then use empty to judge. However, if you just use the result set to make a judgment, you can use the function provided by $data->isEmpty() to make the judgment.

Persistence in learning, persistence in blogging, and persistence in sharing are the beliefs that Kaka has always adhered to since he started working in the industry. I hope that Kaka’s success in the huge Internet The article can bring you a little bit of help. I am Kaka, see you next time.

The above is the detailed content of The old driver actually overturned in judging the return result (ThinkPHP). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn