Забиндить параметры

Vano

Новичок
Как сделать так, чтобы можно было биндить параметры, примерно как в примере:
PHP:
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// вставим одну строку
$name = 'one';
$value = 1;
$stmt->execute();

// теперь другую строку с другими значениями
$name = 'two';
$value = 2;
$stmt->execute();
?>
(взято с тутора php.net)
В смысле хочу научится писать код, который предоставит возможность "программисту работать на клавиатуре и вводить пароли"
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Кажется, он пишет обертку над DB
 

Vano

Новичок
Да неее. Спасибо за подсказку, но я о другом. Как написать код который дает возможность биндить параметры? Как в примере с PDO. К примеру хочу, чтобы было так:
Код:
$a = new A();
$a->text = 'Hello :world';
$a->bindParams([':world' => $world]);

$world = 'World';

$a->sayHello(); // Выводит "Hello World";

$world = 'Hell';

$a->sayHello(); // Выводит "Hello Hell"
 

ra66it

Новичок
Расширенное описание задачи — в студию. Вот вообще непонятно о чем ты.

"программисту работать на клавиатуре и вводить пароли" — мрак. Так босс задачу поставил что-ли и ты просто ретранслировал? :)
 

Vano

Новичок
"программисту работать на клавиатуре и вводить пароли" — мрак. Так босс задачу поставил что-ли и ты просто ретранслировал? :)
Сори, я думал пошутить, и все вспомнят это

А описание, в последнем примере всё должно быть понятным.
 

Adelf

Administrator
Команда форума
http://php.net/manual/ru/pdostatement.bindparam.php
Внимательно смотри как обьявлен параметр $variable

А вообще.. когда весь нормальный мир стремится к иммутабельности.. чтобы поменьше везде менялись значения, ты хочешь реализовать что-то подобное... не делай так.
 
  • Like
Реакции: Vano

Vano

Новичок
Спасибо. Один вариант есть
PHP:
class A
{

    public $text;

    public function bindParam(&$param)
    {
        $this->text = &$param;
    }

    public function sayHello()
    {
        echo $this->text;
    }

}

$A = new A;

$A->bindParam($text);

$text = 'YOOOHOO';

$A->sayHello();
Думаете по такому принципу в классе PDO сделано?
 

Adelf

Administrator
Команда форума
Да, также. Но не делай так. Такой код ужасен.
 

ra66it

Новичок
Ссылки — зло. Чудеса начнут твориться такие, что сам будешь не рад, когда в по всем признакам read-only объекте данные начинают магическим образом изменяться.
 
Сверху