print_r
配列とオブジェクトを出力echo
し、残りを行うことを知っています。
私の質問は、私が何かをコーディングした結果であり、どういうわけか a の返された変数は でfunction
印刷されませんecho
が、print_r
orで印刷されvar_dump
ます。返されecho
たprint_r
変数string
がarray
したがって、私の質問は次のとおりです。テンプレートfunction showPreviousDiscipline
に配置した場合に返される HTML コードのみが表示されるのはなぜですか? print_r
orを必要とせずに関数を呼び出すだけで表示されるべきではありませんecho
かprint_r
? 一日の終わりには、出力されているのは単なるテキストです
HTML
<div class="ldcMainWrap">
<table>
<tr>
<td>
<select multiple="multiple" size="5">
<?php
// Displays something in the page if is print_r but not if i echo it... or even if i dont put anything...
print_r ($this->showPreviousDiscipline(1));
?>
</select>
</td>
<td>
<select multiple="multiple" size="5">
</select>
</td>
<tr>
</table>
<div>
PHP
public function drawWebsite () {
$tpl = include "step.one.view.php";
return $tpl;
}
public function showPreviousDiscipline ( $uID ) {
$AllUserDetails = parent::$this->pullUserDetails ( $uID );
$allDataRaw = parent::$this->pullDeparmentTableData ();
$html = '';
// Loops through the array $allDataRaw
foreach ($allDataRaw as $key => $val) {
foreach ($val as $key2 => $val2) {
//CHECKs if he user has already selected one and if it does it applies a CSS class
if($key2) {
if($val2 === $AllUserDetails['rID']) {
$html .= '<option value ="'.$val2.'" class="selected">'.$key2.'</option>';
}else {
$html .= '<option value ="'.$val2.'" class="unselected">'.$key2.'</option>';}
}
}
}
$html .= '';
return $html;
}
テスト出力
<select multiple="multiple" size="5">
<option value="11" class="unselected">dID</option>
<option value="test1" class="unselected">dName</option>
<option value="" class="unselected">dDescription</option>
<option value="22" class="selected">dID</option>
<option value="test2" class="unselected">dName</option>
<option value="" class="unselected">dDescription</option>
</select>