Неопределенное колличество аргументов в классе - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Sat, 11 Jan 2025 13:46:17 +0300 Забил через set_include_path путь к своей библиотеки классов, в autoload сделал по простинькому что то типа include_once str_replace(&#039;_&#039;, DIRECTORY_SEPARATOR, $className) . &#039;.php&#039;; разложил свои классы по попкам как то так class_name =&gt; library/class/name.php и всё<br> <pre class="prettyprint">&lt;?php $a = getClass(&#039;class_one&#039;, array(1, 2, 3, 4)); $b = getClass(&#039;class_two&#039;, array(&#039;a&#039;, &#039;b&#039;, &#039;c&#039;)); //зачем эти велосипеды? </pre> https://visavi.net/topics/24332/473381 Неопределенное колличество аргументов в классе Lugaro Mon, 02 Jan 2012 18:11:43 +0400 Сообщения https://visavi.net/topics/24332/473381 как все запущенно....... https://visavi.net/topics/24332/473353 Неопределенное колличество аргументов в классе Павел Mon, 02 Jan 2012 17:37:32 +0400 Сообщения https://visavi.net/topics/24332/473353 <a href="http://php.su/functions/?cat=funchand" target="_blank" rel="nofollow">http://php.su/functions/?cat=funchand</a> https://visavi.net/topics/24332/473310 Неопределенное колличество аргументов в классе Артур Mon, 02 Jan 2012 15:31:21 +0400 Сообщения https://visavi.net/topics/24332/473310 $s=sizeof($args); $args2=array(); for($i=0; $i&lt;$s;$i++){$args2[$i]=&#039;$args[&#039;.$i.&#039;]&#039;;} return eval(&#039;return new &#039;.$name.&#039;(&#039;.join(&#039;,&#039;, $args2).&#039;);&#039;); Может быть, можно и лучше. https://visavi.net/topics/24332/412799 Неопределенное колличество аргументов в классе Петр Thu, 25 Aug 2011 09:51:17 +0400 Сообщения https://visavi.net/topics/24332/412799 <blockquote class="blockquote"><strong>Limp</strong> (23 Августа 2011 / 02:40)<br> 7. <strong>Джикинайс</strong>, попробуй используя механизм рефлексий:<br> &lt;?php<br> <br> function getClass($class, array $args)<br> {<br> try {<br> $reflection = new ReflectionClass($class);<br> $object = $reflection-&gt;newInctanceArgs($args);<br> } catch (ReflectionExeption $e) {<br> $object = new $class;<br> }<br> <br> return $object;<br> }<br> ?&gt;<br> <br> написал с телефона, так что может сразу не заработает.</blockquote> Можно, но не выгодно т.к не у всех библа настроена =) https://visavi.net/topics/24332/411457 Неопределенное колличество аргументов в классе Nu3oN Tue, 23 Aug 2011 02:46:12 +0400 Сообщения https://visavi.net/topics/24332/411457 7. <strong>Джикинайс</strong>, попробуй используя механизм рефлексий:<br> &lt;?php<br> <br> function getClass($class, array $args)<br> {<br> try {<br> $reflection = new ReflectionClass($class);<br> $object = $reflection-&gt;newInctanceArgs($args);<br> } catch (ReflectionExeption $e) {<br> $object = new $class;<br> }<br> <br> return $object;<br> }<br> ?&gt;<br> <br> написал с телефона, так что может сразу не заработает. https://visavi.net/topics/24332/411456 Неопределенное колличество аргументов в классе Владислав Tue, 23 Aug 2011 02:40:36 +0400 Сообщения https://visavi.net/topics/24332/411456 <blockquote class="blockquote"><strong>ramzes</strong> (23 Августа 2011 / 02:32)<br> Да массив передавай и принимай как массив, в чем проблема то? Классы свои? Конструкторы чуть подправить да и все</blockquote> мне надо что бы все штатно было! https://visavi.net/topics/24332/411454 Неопределенное колличество аргументов в классе Nu3oN Tue, 23 Aug 2011 02:32:49 +0400 Сообщения https://visavi.net/topics/24332/411454 Да массив передавай и принимай как массив, в чем проблема то? Классы свои? Конструкторы чуть подправить да и все https://visavi.net/topics/24332/411453 Неопределенное колличество аргументов в классе ramzes Tue, 23 Aug 2011 02:32:14 +0400 Сообщения https://visavi.net/topics/24332/411453 <blockquote class="blockquote"><strong>ramzes</strong> (23 Августа 2011 / 02:18)<br> 3. <strong>Джикинайс</strong>, массивом принимай аргументы, и все</blockquote> Да я же говорю мне не принять надо, а передать! https://visavi.net/topics/24332/411452 Неопределенное колличество аргументов в классе Nu3oN Tue, 23 Aug 2011 02:25:52 +0400 Сообщения https://visavi.net/topics/24332/411452 3. <strong>Джикинайс</strong>, массивом принимай аргументы, и все https://visavi.net/topics/24332/411450 Неопределенное колличество аргументов в классе ramzes Tue, 23 Aug 2011 02:18:27 +0400 Сообщения https://visavi.net/topics/24332/411450 <blockquote class="blockquote"><strong>ramzes</strong> (23 Августа 2011 / 02:12)<br> я что то не уловил, что тебе надо, но подозреваю что плясать надо отсюда <a href="http://www.php.su/functions/?func_get_args" target="_blank" rel="nofollow">http://www.php.su/functions/?func_get_args</a></blockquote> мне надо не принять аргументы в конструктор, а на оборот передать в конструктор :-)<br> <br> <em><span style="font-size:x-small">Добавлено через 00:46 сек.</span></em><br> Хотя... Я кажется придумал... https://visavi.net/topics/24332/411447 Неопределенное колличество аргументов в классе Nu3oN Tue, 23 Aug 2011 02:16:20 +0400 Сообщения https://visavi.net/topics/24332/411447 я что то не уловил, что тебе надо, но подозреваю что плясать надо отсюда <a href="http://www.php.su/functions/?func_get_args" target="_blank" rel="nofollow">http://www.php.su/functions/?func_get_args</a> https://visavi.net/topics/24332/411445 Неопределенное колличество аргументов в классе ramzes Tue, 23 Aug 2011 02:12:43 +0400 Сообщения https://visavi.net/topics/24332/411445 Голова уже лопается... необходимо при создании объекта, передавать неопределенное колличество аргументов в конструктор!<br> Например (это исключительно пример, можете предложить свою реализацию):<br> <br> <pre class="prettyprint">&lt;?php function getClass($name, $args=array()) { $a = new $name(/* Сюда надо как то вставить аргументы из массива $args */); return $a; }</pre> потом<br> <pre class="prettyprint">&lt;?php $a = getClass(&#039;class_one&#039;, array(1, 2, 3, 4)); $b = getClass(&#039;class_two&#039;, array(&#039;a&#039;, &#039;b&#039;, &#039;c&#039;));</pre> Как это можно реализовать? __autoload даже не предлагать (=<br> <br> Пробовал еще так:<br> <br> <pre class="prettyprint">&lt;?php $a = new $name(); call_user_func_array(array($a, &#039;__construct&#039;), $args);</pre> Но тогда фигня выходит... Обьекты дублируются:<br> <br> <blockquote class="blockquote">array(0) { } <br> array(4) { [0]=&gt; int(1) [1]=&gt; int(2) [2]=&gt; int(3) [3]=&gt; int(4) } <br> array(0) { } <br> array(3) { [0]=&gt; string(1) &quot;a&quot; [1]=&gt; string(1) &quot;b&quot; [2]=&gt; string(1) &quot;c&quot; }</blockquote> https://visavi.net/topics/24332/411443 Неопределенное колличество аргументов в классе Nu3oN Tue, 23 Aug 2011 02:04:44 +0400 Сообщения https://visavi.net/topics/24332/411443