[請益] class內function呼叫問題已刪文
我寫了一個class
在外面產生class物件呼叫input函式
---------------------------------------------
$defaults = array('price' => '5.00');
$form = new FormHelper($defaults);
$form->input('text', ['name' => 'dish_name']);
---------------------------------------------
執行結果有顯示input function內的XXX
但tag function裡的YYY就沒有顯示 顯示tag並沒有被呼叫
為什麼呢 有人可以解釋嗎
thanks
--------以下是物件程式碼
<?php
class FormHelper {
protected $values = array();
public function __construct($values = array()){
if ($_SERVER['REQUEST_METHOD']== 'POST'){
$this->values = $_POST;
}else{
$this->values = $values;
}
}
public function input($type, $attributes = array(), $isMultiple = false){
$attributes['type'] = $type;
print "XXX";
return this->tag('input',$attributes, $isMultiple);
}
public function tag($tag, $attributes = array(), $isMultiple = false){
print "YYY";
return "<$tag {$this->attributes($attributes, $isMultiple)} />";
}
protected function attributes($attributes, $isMultiple, $valueAttribute =
true){
$tmp = array();
if($valueAttribute && isset($attributes['name']) &&
array_key_exists($attributes['name'], $this->values)){
$attributes['value'] = $this->values[$attributes['name']];
}
foreach ($attributes as $k => $v){
if(is_bool($v)){
if($v) { $tmp[] = $this->encode($k);}
}
else{
$value = this->encode($v);
if($isMultiple && ($k == 'name')){
$value .='[]';
}
$tmp[] = "$k=\"$value\"";
}
}
return implode(' ', $tmp);
}
public function encode($s) {
return htmlentities($s);
}
}
?>
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.67.167 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1698498878.A.084.html
※ 編輯: afred (111.255.67.167 臺灣), 10/28/2023 21:16:25
※ 編輯: afred (111.255.67.167 臺灣), 10/28/2023 21:17:09
→
10/28 21:31,
1年前
, 1F
10/28 21:31, 1F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章