Articles of pass by reference

call_user_func_array со ссылками

Я в основном пытаюсь вызвать mysqli :: bind_param через call_user_func_array . Вот моя функция: function Insert($table, $values=array(), $flags=0) { $field_count = count($values); if($field_count > 0) { $fields = implode(',',array_keys($values)); $placeholders = implode(',',array_repeat('?',$field_count)); } else { $fields = ''; $placeholders = ''; } if($flags > 0) { $flag_arr = array(); if($flags & self::LOW_PRIORITY) $flag_arr[] = 'LOW_PRIORITY'; […]

Есть ли простой PHP-код, чтобы отличить «Передача объекта в качестве ссылки» vs «Передача ссылки объекта как значения»?

Это связано с вопросом: как работает оператор «&» в функции PHP? Есть ли простой код, чтобы показать разницу между передача объекта в качестве ссылки против передавая ссылку объекта как значение?

PHP-архитектура, а также пошаговые ссылки и пропускная способность

Поиск предложений от PHP-архитекторов! Я не очень хорошо знаком с PHP, но взял на себя обслуживание большого пакета аналитики, написанного на этом языке. Архитектура предназначена для чтения сообщаемых данных в большие массивы ключей / значений, которые передаются через различные модули синтаксического анализа, чтобы извлекать эти параметры отчета, известные каждому из этих модулей. Известные параметры удаляются […]

Передача / Возвращение ссылок на объект + изменение объекта не работает

Я использую ответ от Как получить случайное значение из массива для записи функции, которая возвращает случайный элемент из массива. Я изменил его, чтобы перейти по ссылке и вернуть ссылку . К сожалению, он не работает. Любые изменения в возвращаемом объекте не сохраняются. Что я делаю не так? Я на PHP 5.4, если это имеет значение […]

PHP: только переменные могут передаваться по ссылке

Я получаю эту ошибку в строке 57: $password = str_replace($key, $value, $password, 1); Насколько я могу судить, я перехожу только к переменным. Вот еще один контекст: $replace_count = 0; foreach($replacables as $key => $value) { if($replace_count >= 2) break; if(strpos($password, $key) !== false) { $password = str_replace($key, $value, $password, 1); $replace_count++; } }

Справочные объекты PHP в петле цикла

Допустим, у меня есть эти классы: class Foo { public $_data; public function addObject($obj) { $this->_data['objects'][] = $obj; } } class Bar { public $_data; public function __construct() { $this->_data['value'] = 42; } public function setValue($value) { $this->_data['value'] = $value; } } $foo = new Foo(); $bar = new Bar(); $foo->addObject($bar); foreach($foo->_data['objects'] as $object) { […]

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

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

Параметры привязки PHP по умолчанию и значение по умолчанию

Допустим, у нас есть подпись метода, например public static function explodeDn($dn, array &$keys = null, array &$vals = null, $caseFold = self::ATTR_CASEFOLD_NONE) мы можем легко вызвать метод, опуская все параметры после $dn : $dn=Zend_Ldap_Dn::explodeDn('CN=Alice Baker,CN=Users,DC=example,DC=com'); Мы также можем вызвать метод с тремя параметрами: $dn=Zend_Ldap_Dn::explodeDn('CN=Alice Baker,CN=Users,DC=example,DC=com', $k, $v); и с 4 параметрами: $dn=Zend_Ldap_Dn::explodeDn('CN=Alice Baker,CN=Users,DC=example,DC=com', $k, $v, […]

PHP Прохождение через путаницу

Короче говоря, у меня есть следующая функция как часть моей рамки: public function use_parameters() { $parameters = func_get_args(); $stack = debug_backtrace(); foreach($stack[0]['args'] as $key => &$parameter) { $parameter = array_shift($this->parameter_values); } } Где $ this-> parameter_values ​​= array ('value1', 'value2', 'value3', 'value4', 'value5', …); Используется в следующем контексте: $instance->use_parameters(&$foo, &$bah); Назначение: $foo = 'value1'; $bah […]

Частота пересылки по вызову PHP неизбежно?

Учитывая следующий интерфейс: interface ISoapInterface { public static function registerSoapTypes( &$wsdl ); public static function registerSoapOperations( &$server ); } И следующий код: $soapProvider = array( "FilePool", "UserList" ); foreach( $soapProvider as $provider ) { call_user_func( array( $provider, "registerSoapTypes" ), &$server->wsdl ); call_user_func( array( $provider, "registerSoapOperations" ), &$server ); } FilePool и UserList реализуют ISoapInterface . […]