繁体   English   中英

PHP / HTML用户定义函数

[英]PHP/HTML user-defined function

<? php



function findword($string) {

  $trimmedstring = trim($string);

  $firstspace   = strpos(' ', $trimmedstring);

  $frstwrd       = substr($trimmedstring, 0, $firstspace);


  return $frstwrd;
}


? >

**< form action = "$_SERVER['PHP_SELF']" method= "post" >**

Word: < input type="text" name="word" /><br />

< input type="submit" name="submit" />

< /form>


< ? php

$word = (isset($_POST['word'])) ? $_POST['word'] : '' ;

if ($word) {

  echo findword($word);

}

echo findword($word);

?>

提交的单词: < ?php echo $word; ?>< br /> < ?php echo $word; ?>< br />

该代码块的目的主要是测试用户定义的函数“ findword()”。 从HTML表单(第36-38行)将变量“ $ word”设置为“用户输入”(第45行),如果尚未在表单中输入任何内容,则将其设置为空字符串“”。 在第47行,如果输入了一个单词(它不是空字符串),它会回显带有$ word的函数结果。 在那之后(第50行),我回显了带有$ word的函数,没有if函数,只是第60行上的变量。

这样做的麻烦在于,即使在输入和提交值之后,第47行和第50行都不会执行任何操作,而最后一行会执行任何操作(并且当未提交任何值时,第47行会产生以下错误:“警告: strpos():第12行“( 文件路径 )中的空分隔符”,这是我将通过将空字符串传递给findword()所期望的错误。应该发生的是,if公式中的测试值应该已求值设置为false,然后跳过正文,但改为调用$ word上的函数(这是一个空字符串),然后给出一个错误(如预期的那样)。奇怪的是,当我提交值时,第50行按应有的方式回显所提交的值,而前两行没有给出错误,但它们没有任何回显。

粗体行与我在原始代码中的含义不完全相同,但是为了使其正确显示,我必须更改它以及大部分其他代码。 但这会影响答案或问题。

使用此功能,它将返回第一个单词。

function getFirstWord($str) {

    $firstWord = '';
    if(!empty($str)) {
        $wordArr = explode(' ', $str);
        $firstWord = $wordArr[0];
    }
    return $firstWord;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM