Я запускаю Ubuntu + PHP 5.4 и получил такую ошибку: Строгие стандарты: нестатический метод XTemplate :: I () не следует называть статическим, предполагая $ this из несовместимого контекста в … на строке 339 И этот метод выглядит так: interface ITemplate { public function I(); } class XTemplate implements ITemplate { public function I() { … […]
Я пытаюсь настроить некоторые PHP-методы, которые можно вызывать в инстанцированных и статических контекстах. Каковы хорошие способы сделать это? Например, я хочу иметь возможность: Foo::bar($item); foo($item)->bar(); Я мог бы настроить два отдельных класса, и каждая функция изменяет thisArg и делегирует их другому, но похоже, что это лучший способ. Единственный способ, которым я мог бы это сделать, […]
Как проверить внешний файл для класса? Я пытаюсь установить функцию установки для своих модулей, поэтому я пытаюсь загрузить ее, чтобы загрузить список каталогов, а затем проверить, есть ли в файле модуля метод, называемый install. Поэтому в списке будут отображаться только модули с этим методом. Вот мой код: $output .= '<div id="module-dialog" title="Add Widget"><form id="widget-list" name="widget-list"> […]
Я натолкнулся на очень странное поведение на PHP5.4 (также присутствует в 5.5). В принципе, я вызываю нестатический метод статически, и я не получаю ошибку E_STRICT, где я определенно должен ее получить. <?php error_reporting(E_ALL); class A { public function iAmNotStatic() {} } Теперь, если я это сделаю: A::iAmNotStatic(); Затем я получаю ошибку, как ожидалось. Strict standards: […]
Я пытаюсь вернуть несколько переменных из метода. Это то, что я пробовал до сих пор: Этот код является методом класса: public function getUserInfo(){ $stmt = $this->dbh->prepare("SELECT user_id FROM oopforum_users WHERE username = ?"); $stmt->bindParam(1, $this->post_data['username']); $stmt->execute(); while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $user_id = $row['user_id']; $thumb = $row['thumbnail']; } return array($user_id, $thumb); } Я пытаюсь разместить каждую […]
Ниже приведены примеры кода класса php, который является статическим методом и нестационарным методом. Пример 1: class A{ //None Static method function foo(){ if (isset($this)) { echo '$this is defined ('; echo get_class($this); echo ")<br>"; } else { echo "\$this is not defined.<br>"; } } } $a = new A(); $a->foo(); A::foo(); //result $this is defined […]
Мой метод удаления изображения из базы данных и локального хранилища. public function destroy($id) { $image = DB::table('images')->where('id', '=', $id)->first(); //print_r($image); //return 'end'; File::delete(public_path() . '/images/gallery/thumb-' . $image->path); File::delete(public_path() . '/images/gallery/' . $image->path); $image->delete(); return Redirect::back() ->with('form_success', 1) ->with('form_message', 'Image successfully deleted!'); } Если я попытаюсь вернуть значение $image я получаю: stdClass Object ( [id] => […]
Я хочу создать метод перенаправления, который можно было бы вызвать из других методов. К сожалению, я не могу сделать это, как хочу (см. Источник ниже). Я предлагаю решение, но я хочу перенаправить просто вызов метода, а не делать больше. Мое решение: class FooController extends Controller { public function foo(Request $request) { if ($result = $this->__check($request)) […]
Мне нужно знать, объявлен ли метод как статический, учитывая его имя и имя класса, содержащего его. method_exists предоставляет true как для статических, так и для нестатических методов.
Я использую грушу для отправки почты в PHP. Я следовал примеру, который находится здесь ( http://pear.php.net/manual/en/package.mail.mail.send.php ). Тем не менее, я получаю это сообщение об ошибке. Строгие стандарты: нестатический метод Mail :: factory () не следует вызывать статически в C: \ xampp \ htdocs \ functions.php в строке 43 Поэтому я пытался получить сообщение «Строгие […]