我是PHP的新手。我的问题是我需要输入来验证至少20个字符输入并返回最后九个。任何人都可以告诉我,我的论点是否接近工作,如果不是我需要做什么?
if (!empty($_POST['usen']) ||
strlen($usen['usen'] >= 20 )) {
$switch = substr($usen, -9, 9); // returns last nine of sentence
$output_form=false;
} else {
$error_text .="<p><span class='error'>*<strong>A Sentence of 20 char is required .</strong></span></p>";
$output_form=true;
}
答案 0 :(得分:0)
要获取$ usen [&#39; usen&#39;]的最后9个字符,请使用
$switch = substr($usen, -9);
答案 1 :(得分:0)
if (!empty($_POST['usen']) ||
strlen($_POST['usen']) >= 20 ) { // changed condition
$switch = substr($usen, -9, 9); // returns last nine of sentence
$output_form=false;
} else {
$error_text .="<p><span class='error'>*<strong>A Sentence of 20 char is required .</strong></span></p>";
$output_form=true;
}
if-condition在第二部分有两个问题
$usen['usen']
,但我认为它应该是$_POST['usen']
(另请参阅@Ed Cottrell
的评论)答案 2 :(得分:0)
您有几个语法问题和变量命名问题。您的代码应该:
if (!empty($_POST['usen']) && // || should be &&; the || doesn't make sense here
strlen($_POST['usen']) >= 20 ) { // You had $usen['usen'] and an incorrectly placed )
$switch = substr($_POST['usen'], -9); // again, this should be $_POST['usen'], not $usen. The third parameter is unnecessary here.
$output_form = false;
} else {
$error_text .= "<p><span class='error'>*<strong>A Sentence of 20 char is required .</strong></span></p>";
$output_form = true;
}
关键点:
!empty($x) || strlen($x) >= 20
没有意义。它应该是&&
,而不是||
。如果$_POST['usen']
的值为非空值,则!empty($_POST['usen'])
为true
。但是因为您的||
条件中有if
,这意味着if
块始终针对非空值执行,而不是else
块。如果值为非空且至少为20个字符,则只需执行if
。$_POST['usen']
,但您的代码引用了$usen['usen']
和$usen
,这些代码不正确。 strlen($usen['usen'] >= 20)
,您应该strlen($_POST['usen']) >= 20
。变量名称和)
展示位置都不正确。答案 3 :(得分:0)
if (!empty($_POST['usen']) &&
strlen($_POST['usen'] )>= 20 ) { //condition change
$switch = substr($_POST['usen'] ,-9); // returns last nine of sentence
$output_form=false;
} else {
$error_text .="<p><span class='error'>*<strong>A Sentence of 20 char is required .</strong></span></p>";
$output_form=true;
}
要获得最后9个字符,可以使用substr(string,-9);