In the actual test, when PHP reads the json array and uses simple if or array_key_exists to determine whether the object exists, an error will be reported. The following is the correct judgment method from Google search
In fact, the error is reported because I am not very proficient in PHP, so maybe the correct judgment method I think is not the most perfect solution or even wrong. This blog post is reserved for my own use
Error code:
<span style="color: #800080;">$structure</span> = <span style="color: #008080;">imap_fetchstructure</span>(<span style="color: #800080;">$connection</span>, <span style="color: #800080;">$id</span>,<span style="color: #000000;"> FT_UID); </span><span style="color: #0000ff;">if</span> (<span style="color: #008080;">array_key_exists</span>('parts', <span style="color: #800080;">$structure</span><span style="color: #000000;">)) { }</span>
An error message Warning: array_key_exists() expects parameter 2 to be array, boolean given
The correct solution is:
<span style="color: #0000ff;">if</span> (<span style="color: #008080;">is_array</span>(<span style="color: #800080;">$structure</span>) && <span style="color: #008080;">array_key_exists</span>('parts', <span style="color: #800080;">$structure</span>)) <br>{ <span style="color: #008000;">//</span><span style="color: #008000;">...magic stuff here <br>}</span>
Another way is to use isset to judge directly:
<span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$structure</span>['parts'<span style="color: #000000;">])) { }<br></span>
//This function is used to test whether the variable has been configured. Returns true if the variable already exists. Otherwise a false value is returned.
// Therefore, it is necessary to return TURE
if the variable exists and the value is not NULL.