如果函数在PHP中不起作用,那么它会变大吗?
亲爱的, 我很惊讶为什么PHP的“IF-ELSE”函数不能正常工作。我想它有点长,但我为它做了算法,从逻辑上讲,它会工作得很好。有人知道为什么这个功能不能正常工作吗。请如果函数在PHP中不起作用,那么它会变大吗?,php,function,if-statement,Php,Function,If Statement,亲爱的, 我很惊讶为什么PHP的“IF-ELSE”函数不能正常工作。我想它有点长,但我为它做了算法,从逻辑上讲,它会工作得很好。有人知道为什么这个功能不能正常工作吗。请 <?php //entry Marks $tc=80;$tf=33;$pc=null;$pf=50; if($tc!=NULL && $tf!=NULL && $pc!=NULL && $pf!=NULL){ echo $tc."
<?php
//entry Marks
$tc=80;$tf=33;$pc=null;$pf=50;
if($tc!=NULL && $tf!=NULL && $pc!=NULL && $pf!=NULL){
echo $tc." ".$tf." ".$pc." ".$pf;
}else{
if($tc!=NULL){
if($tf!=NULL && $pc!=NULL && $pf!=NULL){
echo "tf.pc.pf";
}else{
if($tf!=NULL){
if($pc!=NULL && $pf!=NULL){
echo "tf.pc.pf";
}else{
if($pc!=NULL){
if($pf!=NULL){
echo "tf.pc.pf";
}else{
echo "tf.pc";
}
}else{
if($pf!=NULL){
echo "tf.pf";
}else{
echo "tf";
}
}
}
}else{
if($pc!==NULL && $pf!=NULL){
echo "pc.pf";
}else{
if($pc!=NULL){
if($pf!=NULL){
echo "pc.pf";
}else{
echo "pc";
}
}else{
if($pf!=NULL){
echo "pf";
}else{
echo "null";
}
}
}
}
}
}else{ //2nd part
if($tf!=NULL && $pc!=NULL && $pf!=NULL){
echo "tf.pc.pf";
}else{
if($tf!=NULL){
if($pc!=NULL && $pf!=NULL){
echo "tf.pc.pf";
}else{
if($pc!=NULL){
if($pf!=NULL){
echo "tf.pc.pf";
}else{
echo "tf.pc";
}
}else{
echo "tf";
}
}
}else{
if($pc!=NULL && $pf!=NULL){
echo "pc.pf";
}else{
if($pc!=NULL){
if($pf!=NULL){
echo "pc.pf";
}else{
echo "pc";
}
}else{
if($pf!=NULL){
echo "pf";
}else{
echo "null";
}
}
}
}
}
}
}
?>
您的代码很难理解,下面的代码示例显示了一个简化版本,它根据变量是否为NULL将值或文本附加到字符串中。您可以轻松地更改if-else语句添加到结果字符串中的内容。最后,我删除最后一个字符串末尾的“.”
$result = "";
if($tc == NULL){
$result .= "tc.";
}else{
$result .= $tc.".";
}
if($tf == NULL){
$result .= "tf.";
}else{
$result .= $tf.".";
}
if($pc == NULL){
$result .= "pc.";
}else{
$result .= $pc.".";
}
if($pf == NULL){
$result .= "pf.";
}else{
$result .= $pf.".";
}
$output = rtrim($result, '.');
echo $output;
我会更新我的答案,当它更清楚你想要的是什么输出时我不知道为什么你的大型if语句不起作用。但我有一个建议,就是制作一个PHP函数来满足您的特定需求:
function check($tc=null,$tf=null,$pc=null,$pf=null){
$r = array();
if($tc != null){ $r[] = 'tc'; }
if($tf != null){ $r[] = 'tf'; }
if($pc != null){ $r[] = 'pc'; }
if($pf != null){ $r[] = 'pf'; }
if(empty($r)){
return 'null';
} else {
return implode('.', $r);// MAKE STRING OF ARRAY
}
}
并按如下方式调用函数:
$tc=80;$tf=33;$pc=null;$pf=50;
echo check($tc, $tf, $pc, $pf);
试一试:如另一个答案所述,您的代码比需要的长得多。这个长度让人很难理解。您可以使用foreach循环遍历所有列(这将使添加列更加容易) 假设我了解您在寻找什么,您可以使用以下内容:
$tc=80;$tf=33;$pc=null;$pf=50;
$columns = array('tc'=>$tc,'tf'=>$tf,'pc'=>$pc,'pf'=>$pf);
$i = 0;
$output = "";
foreach ($columns as $key=> $column) {
if (!$column == null) {
$output .= $key.".";
}
}
// strip last period:
$output = rtrim($output, '.');
echo $output;
链接到的php沙盒。哇,这很难理解。这可能应该在一个类中,在这个类中,您可以在方法中将其分解为可读的块。这是地狱般的
if-else
。分成几块,试着纠正它们。甚至没有人对整个代码感兴趣代码怎么不起作用?它在做什么?先生,它在表格中插入标记的代码,有时表格有TC、TF、PC、PF全列,有时只有PC、PF列。我的目标是识别哪列为空,然后按原样放置数据@NoLiver您需要查看这些语句,因为其中一些语句永远不会运行。假设值为NULL,您想将文本“tf.pf”(例如,$tf&$pt为NULL)放在这里,我的假设正确吗@Mdimran