Ben böyle bir şey yapmak istiyorum:
class Name{
function assign($name,$value){
}
}
Oldukça fazla assign
smarty aynı Hangi
$smarty->assign('name',$value);
$smarty->display("index.html");
Bu nasıl uygulanacağı?
Soru biraz belirsiz. Ileride kullanmak için yaklaşık $ isim $ değerini tutmak istiyorsanız gibi bir şey yapabilirsiniz:
class Name {
protected $_data= array();
function assign($name,$value) {
$this->_data[$name]= $value;
}
}
Sonra bir de şablon dosyasında değişkenler kullanılabilir yapmak için:
class Templater {
protected $_data= array();
function assign($name,$value) {
$this->_data[$name]= $value;
}
function render($template_file) {
extract($this->_data);
include($template_file);
}
}
$template= new Templater();
$template->assign('myvariable', 'My Value');
$template->render('path/to/file.tpl');
Ve yol / / file.tpl içeriyorsa:
<html>
<body>
This is my variable: <b><?php echo $myvariable; ?></b>
</body>
</html>
Böyle çıkışını alabilirsiniz
Bu benim değişkendir: My Value
class Name{
private $_vars;
function __construct() {
$this->_vars = array();
}
function assign($name,$value) {
$this->_vars[$name] = $value;
}
function display($templatefile) {
extract($this->_vars);
include($templatefile);
}
}
extract()
çağrı geçici değerler dizisi değerlerine karşılık gelen her anahtar için adlandırılmış değişkenler olarak ortaya bir dizi anahtar-değer çiftleri çeker.
Eğer html dosyasına değişkenleri kullanılabilir hale getirmek için genel kayıt defteri sınıf oluşturmanız gerekir.
class registry { private $data = array();
static function set($name, $value)
{
$this->data[$name] = $value;
}
static function get($value)
{
return isset($this->data[$name]) ? $this->data[$name] : false;
}
}
ve dosyaları bu gibi erişim:
Kayıt :: ('benim zaten ayarlanmış değer') olsun;