[英]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.