Home  >  Article  >  Backend Development  >  Detailed explanation of the implementation steps of in_array implicit conversion in PHP

Detailed explanation of the implementation steps of in_array implicit conversion in PHP

php中世界最好的语言
php中世界最好的语言Original
2018-05-18 14:11:271603browse

This time I will bring you a detailed explanation of the implementation steps of in_array implicit conversion in PHP. What are the precautions for the implementation of implicit conversion of in_array in PHP. The following is a practical case. Get up and take a look.

Question

When writing an interface today, you need to pass in a large number of basic information parameters. The parameters are of two types: int and string. For the convenience of verification , I plan to put all the parameters in the array, and then use in_array(0, $param) to determine whether the int parameter is 0, and then separately determine whether the string parameter is empty. The sample code is as follows:

      if(in_array(0, $param) || $param['img'] == '') {
        $this->errorCode = 10030;
        $this->errorMessage = '参数不正确';
        return false; 
      }

But During the self-test, I found that if the correct parameters are passed in, a prompt indicating that the parameters are incorrect will be returned! ! !

Reason

This situation occurs precisely because in_array is causing trouble. in_array(search,array) is equivalent to combining each value in the array with search Comparison, since in addition to the int parameter in my $param array, there is also a string parameter, which is equivalent to using string and int to compare. PHP's implicit conversion rules:

non-numeric characters String is compared with an integer, and the string is automatically converted to int(0)

The following example verifies our statement:

<?php
  $a = (int)'abc';
  var_dump($a); //int(0)
  $c = array(0,1,2,3);
  if(in_array('abc', $c)) {
    echo 'exist';
  } else {
    echo 'not exist';
  } //exist

Solution

in_array adds a third parameter true, which is used to check whether the type of the searched data is the same as the value of the array. In this way, the function can only be used when the element exists in the array and the data The type will return true only when it is the same as the given value

For the business I presented above, you can be more rigorous and store int type data in an array and string in an array, two arrays of different types. Perform data verification separately, so that the above problems will not occur

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!

Recommended reading:

What methods are there in php to output the value of a json object

Alibaba Cloud Win2016 installation of Apache and PHP Detailed explanation of environment tutorial

Detailed explanation of the steps of PHP generation addition and subtraction algorithm

The above is the detailed content of Detailed explanation of the implementation steps of in_array implicit conversion in PHP. 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