可以帮我这个函数任何代码吗?

时间:2017-11-19 01:33:57

标签: php

function str2_in_str1($str1, $str2) {
  $p_len = strlen($str2);
   $w_len = strlen($str1);
   $w_start = $w_len-$p_len;
   if (substr($str1, $w_len-$p_len, $p_len) == $str2) {
      return "true";
   } 
   else 
   {
      return "false";
   }
}
echo str2_in_str1("Python","thon")."\n";
echo str2_in_str1("JavaScript","ript")."\n";

有人可以向我解释这个功能发生了什么? 感谢。

2 个答案:

答案 0 :(得分:1)

即使这可以做得更干净......在学习如何通过并给出变量描述性名称并添加一些注释时,这是一个好主意。

我在这里所做的是希望它可以使事情变得更加清晰。

所以我把它分解成更易消化的部分并对其进行评论......

注意:有更好的方法可以执行相同的功能......

/**
 * Determine if String2 matches the end of String 1
 *
 * Example: String1  Python
 *          String2  __thon
 *          would return true, otherwise false
 *
 * @param $string1
 * @param $string2
 * @return string
 */
function is_str2_at_end_of_str1($string1, $string2) {
    $length_of_string1 = strlen($string1);
    $length_of_string2 = strlen($string2);
    // Get the position of where string2
    // Only works if $length_string1 > $length_string2
    $position_in_string1 = $length_of_string1 - $length_of_string2;

    // Get the characters at the end of string1 that is the same size as string2.
    // Go to php.net and look up substr()
    $string1_end_section = substr($string1, $position_in_string1, $length_of_string2);

    if ($string1_end_section == $string2) {
        return "true"; // This is a string and not a boolean true/false
    } else {
        return "false"; // This is a string and not a boolean true/false
    }
}


echo is_str2_at_end_of_str1("Python", "thon") . "\n";
echo is_str2_at_end_of_str1("JavaScript", "ript") . "\n";

答案 1 :(得分:-1)

检查$str2是否在$str1的末尾。还会为此比较返回truefalse