返回值的变量问题

时间:2013-06-05 10:43:55

标签: php variables

试图返回$ out

$out = '';
  $out .= '<form id="agp_upload_image_form" method="post" action="" enctype="multipart/form-data">';

$out .= wp_nonce_field('agp_upload_image_form', 'agp_upload_image_form_submitted'); 

  $out .= $posttile = get_option('posttitle');
  $out .= $postdiscription = get_option('postdiscription');
  $out .= $postauthor = get_option('postauthor');
  $out .= $postcategory= get_option('postcategory');
  $out .= $uploadimage= get_option('uploadimage');
  $out .= $posttitleenabledisables = get_option('posttitleenabledisables'); 
  $out .= $postdiscriptionenabledisable = get_option('postdiscriptionenabledisable');
  $out .= $postauthorenabledisable  = get_option('postauthorenabledisable');
  $out .= $postcategoryenabledisable = get_option('postcategoryenabledisable');
  $out .= $uploadimageenabledisable = get_option('uploadimageenabledisable');
  $out .= $posttaxonomies = get_option('posttaxonomies');
  $out .= $enablecaptcha = get_option('captchaprivatekey');

 if ($posttitleenabledisables == 'disable') { } else { 
  $out .= '<label id="labels" for="agp_image_caption">"'.if ( isset($posttile[0])) { echo get_option('posttitle'); } else { echo 'Post Title'; } .'":</label><br/>';

   $out .='<input type="text" id="agp_image_caption" name="agp_image_caption" value="$agp_image_caption ;"/><br/>';
 }  

但在这一点上陷入了错误

  $out .= '<label id="labels" for="agp_image_caption">"'.if ( isset($posttile[0])) { echo get_option('posttitle'); } else { echo 'Post Title'; } .'":</label><br/>';

我希望这次返回但是会收到错误,因为我认为变量不允许if else

可以告诉我们如何解决这个问题

4 个答案:

答案 0 :(得分:2)

你尝试使用if / else的方式,我认为你需要一个ternary operator。如果/ else控件不能以您尝试的方式使用。

尝试:

$out .= '<label id="labels" for="agp_image_caption">"'. ( isset($posttile[0]) ? get_option('posttitle') : 'Post Title' ) .'":</label><br/>';

基本上,if-else不返回任何值,也不能内联使用。三元运算符求值为单个值,可以与字符串连接,并在任何其他表达式中内联使用。

$cond ? $true_val : $false_val

如果$cond评估为true,则整个语句的评估结果为$true_val,否则为$false_val

答案 1 :(得分:0)

尝试

if ( isset($posttile[0])) {
    $out .= '<label id="labels" for="agp_image_caption">'. get_option('posttitle').':</label><br/>';
} else {  
    $out .= '<label id="labels" for="agp_image_caption">Post Title:</label><br/>';
}

在您的代码中删除额外的

Orelse就像你的代码改变一样

$out .= '<label id="labels" for="agp_image_caption">'.if ( isset($posttile[0])) { get_option('posttitle') } else { 'Post Title' } .':</label><br/>';

答案 2 :(得分:0)

Ty Ternaryoperator。

$out .= '<label id="labels" for="agp_image_caption">"';
$out.= (isset($posttile[0]))? get_option('posttitle') : 'Post Title';
$out.='":</label><br/>';

答案 3 :(得分:0)

这是因为你在字符串concat中有一个条件。

替换

$out .= '<label id="labels" for="agp_image_caption">"'.if ( isset($posttile[0])) { echo get_option('posttitle'); } else { echo 'Post Title'; } .'":</label><br/>';

$caption = isset($posttile[0]) ? get_option('posttitle') : "Post Title";
$out = '<label id="labels" for="agp_image_caption">"' . $caption . '":</label><br/>';