Неопределенное колличество аргументов в классе - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - 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('_', DIRECTORY_SEPARATOR, $className) . '.php'; разложил свои классы по попкам как то так class_name => library/class/name.php и всё<br>
<pre class="prettyprint"><?php
$a = getClass('class_one', array(1, 2, 3, 4));
$b = getClass('class_two', array('a', 'b', 'c'));
//зачем эти велосипеды?
</pre>
https://visavi.net/topics/24332/473381
Неопределенное колличество аргументов в классе LugaroMon, 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<$s;$i++){$args2[$i]='$args['.$i.']';} return eval('return new '.$name.'('.join(',', $args2).');'); Может быть, можно и лучше.
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>
<?php<br>
<br>
function getClass($class, array $args)<br>
{<br>
try {<br>
$reflection = new ReflectionClass($class);<br>
$object = $reflection->newInctanceArgs($args);<br>
} catch (ReflectionExeption $e) {<br>
$object = new $class;<br>
}<br>
<br>
return $object;<br>
}<br>
?><br>
<br>
написал с телефона, так что может сразу не заработает.</blockquote>
Можно, но не выгодно т.к не у всех библа настроена =)
https://visavi.net/topics/24332/411457
Неопределенное колличество аргументов в классе Nu3oNTue, 23 Aug 2011 02:46:12 +0400Сообщенияhttps://visavi.net/topics/24332/4114577. <strong>Джикинайс</strong>, попробуй используя механизм рефлексий:<br>
<?php<br>
<br>
function getClass($class, array $args)<br>
{<br>
try {<br>
$reflection = new ReflectionClass($class);<br>
$object = $reflection->newInctanceArgs($args);<br>
} catch (ReflectionExeption $e) {<br>
$object = new $class;<br>
}<br>
<br>
return $object;<br>
}<br>
?><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
Неопределенное колличество аргументов в классе Nu3oNTue, 23 Aug 2011 02:32:49 +0400Сообщенияhttps://visavi.net/topics/24332/411454Да массив передавай и принимай как массив, в чем проблема то? Классы свои? Конструкторы чуть подправить да и все
https://visavi.net/topics/24332/411453
Неопределенное колличество аргументов в классе ramzesTue, 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
Неопределенное колличество аргументов в классе Nu3oNTue, 23 Aug 2011 02:25:52 +0400Сообщенияhttps://visavi.net/topics/24332/4114523. <strong>Джикинайс</strong>, массивом принимай аргументы, и все
https://visavi.net/topics/24332/411450
Неопределенное колличество аргументов в классе ramzesTue, 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
Неопределенное колличество аргументов в классе Nu3oNTue, 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
Неопределенное колличество аргументов в классе ramzesTue, 23 Aug 2011 02:12:43 +0400Сообщенияhttps://visavi.net/topics/24332/411445Голова уже лопается... необходимо при создании объекта, передавать неопределенное колличество аргументов в конструктор!<br>
Например (это исключительно пример, можете предложить свою реализацию):<br>
<br>
<pre class="prettyprint"><?php
function getClass($name, $args=array())
{
$a = new $name(/* Сюда надо как то вставить аргументы из массива $args */);
return $a;
}</pre>
потом<br>
<pre class="prettyprint"><?php
$a = getClass('class_one', array(1, 2, 3, 4));
$b = getClass('class_two', array('a', 'b', 'c'));</pre>
Как это можно реализовать? __autoload даже не предлагать (=<br>
<br>
Пробовал еще так:<br>
<br>
<pre class="prettyprint"><?php
$a = new $name();
call_user_func_array(array($a, '__construct'), $args);</pre>
Но тогда фигня выходит... Обьекты дублируются:<br>
<br>
<blockquote class="blockquote">array(0) { } <br>
array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) } <br>
array(0) { } <br>
array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }</blockquote>
https://visavi.net/topics/24332/411443
Неопределенное колличество аргументов в классе Nu3oNTue, 23 Aug 2011 02:04:44 +0400Сообщенияhttps://visavi.net/topics/24332/411443