kadar Boş Değişken. bu oluyor, ya da ne kadar düzgün anlatmaya ama belki birisi bu konuda bazı ışık tutabilir neden olduğunu tam olarak emin değilim yeniden
Ben CodeIgniter/Opencart Çerçeve bir Sicili, Kontrolör ve Modülü kullanan dışına göre CMS sistemi var. Ben yeniden atama zaman ..echo empty($this->application_page)?'yes':'no';
//Returns Yes
Ama:
$this->application_page = 'current/page';
Ama uygulamada diyoruz nedense: Ben daha önce olduğu gibi kayıt defterine bir değişkeni kaydettiğiniz bir senaryo haline çalıştırmak o:
echo empty($this->application_page)?'yes':'no';
//Returns Yes
$page = $this->application_page;
echo empty($page)?'yes':'no';
//Returns No
bir var_dump döner:
var_dump($this->application_page);
string 'current/page' (length=12)
Sadece $page
kullanarak kolayca bu sorunun üstesinden gelebilirsiniz ama bu neden oluyor merak ediyorum?
GÜNCELLEME: Hepsi birlikte nasıl çalıştığını yüzden _isset
fonksiyonu ile etrafında haberci ama burada .. o muhtemelen benim hata işe muhtemelen değil alamadım
geçerli:
class Registry {
private $data = array();
public function get($key){ return (isset($this->data[$key]) ? $this->data[$key] : NULL); }
public function set($key,$val){ $this->data[$key] = $val;
}
abstract class Controller {
protected $registry;
public function __construct($registry){ $this->registry = $registry; }
public function __get($key){ return $this->registry->get($key); }
public function __set($key,$value){ $this->registry->set($key, $value); }
}
class Applications {
private $registry;
function __construct($Registry){ $this->registry = $Registry; }
function __get($key){ return $this->registry->get($key); }
function __set($key,$val){ return $this->registry->set($key,$val); }
public function buildApplication(){
$this->application_page = 'current/page';
$application = new application($this->registry);
}
}
class Application extends Controller {
public function index(){
echo empty($this->application_page)?'yes':'no';
//Returns Yes
$page = $this->application_page;
echo empty($page)?'yes':'no';
//Returns No
}
}
Bu yardımcı olur mu? Bir Yazım hatası vardı, Kayıt Defteri'nin işlevleri sihirli yöntemler değildir. Ayrıca Başvurularda $ kayıt defteri beyan edildi.
% 100 Are); bu üretim kodu değil umut? – NDM
Gecikme için özür dilerim! Evet eminim, gönderilmeden önce yaklaşık 5 kez çifte kontrol ettim =) – Corey
@Corey Lütfen güncellenmiş cevabımı görün. – ComFreek