Если у меня есть экземпляр в PHP, то какой самый простой способ получить статическое свойство («переменная класса») этого экземпляра? Эта $classvars=get_class_vars(get_class($thing)); $property=$classvars['property']; Звук действительно преувеличен. Я бы ожидал $thing::property или $thing->property
Возможный дубликат: Когда использовать статические и инстанцированные классы У меня есть небольшая проблема с пониманием преимуществ / недостатков статических vs «нормальных» классов в PHP, так как кажется, что я могу сделать то же самое с обоими. Если я могу иметь статические переменные в классах и легко получать / изменять их со статическими методами, зачем мне […]
Мне ужасно жаль, что я задал такой глупый вопрос, но я новичок в ООП и пытаюсь выяснить, для чего используются статические методы. Вот пример кода PHP: class foo{ static function bar(){ //do something here } public function baz(){ //do something different } } Документация гласит: Объявление свойств класса или методов как статических делает их доступными […]
Много раз я слышал, чтобы избежать статических классов, потому что они будут вставлять зависимости, которые сделают ваш код непригодным для использования в других проектах и не позволят ему его протестировать . Допустим, у нас есть типичная class DB для доступа к базе данных, если такой класс является static мы могли бы называть его везде в […]
У меня есть эта html-форма, которая вызывает php-файл. Index.html -> <form action="html_form_submit.php" method="post"> <textarea name="name" rows="2" cols="20"> </textarea > <input type="submit" value="Submit" /> </form> от html_form_submit.php -> <?php $name = @$_POST['name']; ?> <html> <body> <p> Id: <?php echo $id; ?><br> Name: <?php echo $name; ?><br> Email: <?php echo $email; ?> </p> </body> </html> Это работает […]
У меня есть определенный класс, который имеет несколько констант, определенных через `const FIRST = 'something'; Я создал экземпляр класса как $class = new MyClass() то у меня есть другой класс, который принимает экземпляр MyClass как один из его конструкторов и сохраняет его как $this->model = $myClassInstance; Это прекрасно работает. Но мне интересно, как я могу […]
Я хотел бы начать с показа теста: class A { public static $instance=null; public function __construct(){ self::$instance=$this; } public function className(){ return get_class(self::$instance); } } class B extends A { public function className(){ return get_class(self::$instance); } } // test code $b=new B(); echo $b->className; // B $a=new A(); echo $a->className; // A echo $b->className; // […]
Это базовый веб-сайт. Основываясь на ответах здесь, я делаю это: private $db; public function __construct($id = null) { $this->db = Db::getInstance(); //singleton from the Db class Но если есть статический метод, я не могу использовать переменную объекта. Есть ли что-то лучше, чем вручную указывать переменную db внутри статического метода? public static function someFunction($theID){ $db = […]
Я пытаюсь получить доступ к статическому методу, но используя переменную как имя класса. Это возможно? Кажется, у меня проблемы с этим. Я хочу сделать что-то вроде этого: class foo { public static function bar() { echo 'test'; } } $variable_class_name = 'foo'; $variable_class_name::bar(); И я хочу, чтобы иметь возможность делать подобное, используя статические переменные.
Когда пользователь регистрируется на моем сайте, я создаю экземпляр класса User , извлекаю некоторые данные, связанные с пользователем, и сохраняю объект в SESSION . Некоторые из данных, которые я извлекаю из базы данных, должны быть постоянными на протяжении всего сеанса. И я хочу, чтобы данные были доступны из других объектов. Я предпочитаю использовать User::$static_value_in_class для […]