Articles of oop

Проблема с клонированием и передачей по ссылке

Поэтому в течение последних нескольких дней я разрывал свои волосы, пытаясь получить класс, чтобы клонировать его правильно. Проблема заключается в том, что клонирование не удаляет / не отменяет никакой передачи по ссылке. В результате основной объект данных по-прежнему передается как ссылка, что полностью отрицает эффект клона. Вот упрощенная версия проблемы: class my_class { private $data; […]

как получить константы из класса, исключая все константы, которые могли произойти от родителей?

здесь во втором примере PDO заполняет MyClass своими константами, как их отфильтровать? class MyClass { const PARAM_1 = 1; const PARAM_2 = 2; const PARAM_3 = 4; function MyMethod() { $reflector = new ReflectionClass(__CLASS__); print_r($reflector->getConstants()); } } $myInstance = new MyClass(); $myInstance->MyMethod(); //returns: //Array //( // [PARAM_1] => 1 // [PARAM_2] => 2 // [PARAM_3] […]

Программирование PHP OOP MySQL

Я новичок в программировании на PHP и хотел бы помочь с небольшим вопросом. Ознакомьтесь с приведенным ниже кодом: PHP-код <?php class Account { public function register() { $db_link = mysql_connect("localhost","root",""); // Create Connection if (!$db_link) // Check connection { die(mysql_error()); } mysql_close($db_link); // Close Connection } public function login() { $con = mysql_connect("localhost","root","") // create […]

PHP – определение классов внутри функции

Это плохая практика? как: function boo(){ require_once("class.moo.php"); } … ?

Может ли простая модель просто расширить Zend_Db_Row (по существу, Active Record)?

Я знаю, что модели домена и карты данных являются выбором ООП-сноба (используя «сноб» дополнительным образом, как Мартин Фаулер называет себя), однако даже Фаулер говорит в POEAA, что «Active Record – хороший выбор для логики домена, которая не слишком сложна …» У меня есть простая модель продукта и счета-фактуры, а не слишком много таблиц / объектов […]

Проверьте, имеет ли класс метод PHP

В настоящее время мой код выглядит так: switch ($_POST['operation']) { case 'create': $db_manager->create(); break; case 'retrieve': $db_manager->retrieve(); break; … } Я хочу, чтобы проверить, существует ли метод, называемый $_POST['operation'] : если да, тогда назовите его, иначе echo «error» Возможно ли это? Как я могу это сделать?

Тип подсказки в переменных класса

<?php namespace Sandbox; class Sandbox { private Connectors\ISandboxConnector $connection; public function __construct(Connectors\ISandboxConnector $conn) { $this->connection = $conn; } } ?> Для вышеуказанного кода я получаю следующую ошибку: Parse error: syntax error, unexpected 'Connectors' (T_STRING), expecting variable (T_VARIABLE) Когда я var_dump тип var_dump и var_dump что переменная $ connection, это будет private Sandbox\Sandbox а не Sandbox\Connectors\ISandboxconnector […]

возвращает значения из класса php oop

код выглядит следующим образом: Class userinfo { function fetchdatabyemail($email) { $result=mysql_query(" SELECT * FROM users WHERE email='$email'"); while($row = mysql_fetch_array($result)) { $name = $row['name']; $num = $row['num']; $city = $row['city']; } $numrows= mysql_num_rows($result); } } теперь, чтобы получить информацию, я делаю это: $info = new userinfo(); $info->fetchdatabyemail('email@email.com'); echo $info->city; и он не возвращает информацию. Я […]

Проверка того, является ли класс подклассом другого

Я хочу проверить, является ли класс подклассом другого без создания экземпляра. У меня есть класс, который получает в качестве параметра имя класса, и как часть процесса проверки, я хочу проверить, относится ли это к определенному классу (чтобы предотвратить проблемы безопасности и т. Д.). Любой хороший способ сделать это?

Доступ к переменным класса

Это первый раз, когда я использую ООП с PHP 5 .. так что это моя проблема .. У меня есть файл disp.php, который содержит класс с именем class disp (модель в MVC) <?php class disp{ public $n_pages; public $current_page; private $cmd2; /***************SQL command generator*******************/ private function getCmd2($cmd1,$id,$first_entry,$perpage,$tri){ $cmd2=str_replace('COUNT(*)','*',$cmd1); $cmd2=$cmd2.' ORDER BY '.$id.' '.$tri.' LIMIT '.$first_entry.','.$perpage; […]