У меня есть массив и функция.
$m_val=array("Иванов","Петров");
global $m_val;
function fun1()
{
global $m_val;
$r=implode(' , фамилия:', $m_val);
return $r;
}
Скажите пожалуйста, как еще можно передать массив в функцию?
Я не хочу передавать массив в функцию как параметр функции. Может как то ч/з классы можно? И вообще как правильно?
Спустя 12 минут, 59 секунд (9.03.2011 - 09:34) alex12060 написал(а):
Вот так)
В качестве параметра)
$m_val=array("Иванов","Петров");
function fun1($fio)
{
$r=implode(' , фамилия:', $fio);
return $r;
}
$new = fun1($m_val);
В качестве параметра)
Спустя 38 минут, 49 секунд (9.03.2011 - 10:13) twin написал(а):
В функцию никак. А если "через клссы", то это уже не функция, а метод. Делается так:
либо так:
<?php
class Example
{
public $m_val = array("Иванов", "Петров");
public function fun1()
{
$r = implode(' , фамилия:', $this->m_val);
return $r;
}
}
$obj = new Example();
echo $obj -> fun1();
либо так:
class Example
{
static $m_val = array("Иванов", "Петров");
static function fun1()
{
$r = implode(' , фамилия: ', self::$m_val);
return $r;
}
}
echo Example::fun1();
Спустя 7 минут, 31 секунда (9.03.2011 - 10:20) linker написал(а):
Как вариант, если очень хочется оставить именно функцию, а не метод
class Families
{
public static $m_val=array("Иванов","Петров");
}
function fun1()
{
$r=implode(' , фамилия:', Families::$m_val);
return $r;
}
$new = fun1();
Спустя 8 минут, 17 секунд (9.03.2011 - 10:28) zvezda_t написал(а):
КРУТО!!!
спасибо огромное!!!!!!!!!!!
спасибо огромное!!!!!!!!!!!
Спустя 38 минут, 16 секунд (9.03.2011 - 11:07) zvezda_t написал(а):
Цитата (linker @ 9.03.2011 - 07:20) |
Как вариант, если очень хочется оставить именно функцию, а не методclass Families |
запуталась я...
а как быть, если массив $m_val, в свою очередь тоже из функции получается?
function fun_lastname()
{
//фамилии
$result=mssql_query("SELECT name FROM dbo.users");
while($row=mssql_fetch_array($result))
{
$m_name[]=$row['name'];
}
return $m_name;
}
$m_val=fun_lastname();
Спустя 30 минут, 3 секунды (9.03.2011 - 11:37) alex12060 написал(а):
<?php
class test {
var $fio;
function __construct() {
$this->connect(); // Connect to BD
}
protected function connect() {
// Connect to BD
}
function fun_lastname()
{
//фамилии
$result=mssql_query("SELECT name FROM dbo.users");
while($row=mssql_fetch_array($result))
{
$m_name[]=$row['name'];
}
$ret = $this->fun1($m_name);
return $ret;
}
public function fun1($fio)
{
$r = implode(' , фамилия:', $fio);
return $r;
}
}
$obj = new test;
echo $obj->fun_lastname();
Спустя 3 минуты, 39 секунд (9.03.2011 - 11:40) Invis1ble написал(а):
zvezda_t
имхо, объявляй просто как глобальную и все:
имхо, объявляй просто как глобальную и все:
$var = 'Привет!';
function test()
{
global $var;
return $var;
}
echo test();
Спустя 29 минут, 26 секунд (9.03.2011 - 12:10) zvezda_t написал(а):
alex12060
а где задаётся $m_val?
а где задаётся $m_val?
Спустя 22 минуты, 32 секунды (9.03.2011 - 12:32) linker написал(а):
class Familiesили
{
public static $m_val = array();
}
function fun_lastname()
{
//фамилии
$result=mssql_query("SELECT name FROM dbo.users");
while($row=mssql_fetch_array($result))
{
array_push(Families::$m_val, $row['name']);
}
}
fun_lastname();
class Families
{
public static $m_val = array();
}
function fun_lastname()
{
//фамилии
$result=mssql_query("SELECT name FROM dbo.users");
$m_name = array();
while($row=mssql_fetch_array($result))
{
array_push($m_name, $row['name']);
}
return $m_name;
}
Families::$m_val = fun_lastname();
Спустя 11 минут, 21 секунда (9.03.2011 - 12:44) zvezda_t написал(а):
linker, я в восторге!!!!)))))))))
БОЛЬШОЕ ТЕБЕ ЧЕЛОВЕЧЕСКОЕ - СПАСИБО!!!
БОЛЬШОЕ ТЕБЕ ЧЕЛОВЕЧЕСКОЕ - СПАСИБО!!!
Спустя 14 минут, 56 секунд (9.03.2011 - 12:59) zvezda_t написал(а):
linker
и в первом и во втором случае, если я буду обращаться к массиву Families::$m_val
функция fun_lastname() будет вызвана лишь один раз?
и в первом и во втором случае, если я буду обращаться к массиву Families::$m_val
функция fun_lastname() будет вызвана лишь один раз?
Спустя 18 минут, 51 секунда (9.03.2011 - 13:17) linker написал(а):
Один раз вызывала, данные заполнились и все, дальше можешь эти данные использовать как тебе требуется.
Спустя 1 минута, 56 секунд (9.03.2011 - 13:19) zvezda_t написал(а):
Цитата (linker @ 9.03.2011 - 10:17) |
Один раз вызывала, данные заполнились и все, дальше можешь эти данные использовать как тебе требуется. |
поняла! спасибо
Спустя 3 часа, 29 минут, 54 секунды (9.03.2011 - 16:49) m4a1fox написал(а):
zvezda_t
У меня вопрос к Вам. А что Вы реализуете при помощи этого кода. Ну то есть какой есть результат, то что linker напечатал.
У меня вопрос к Вам. А что Вы реализуете при помощи этого кода. Ну то есть какой есть результат, то что linker напечатал.
Спустя 1 час, 12 минут, 24 секунды (9.03.2011 - 18:02) alex12060 написал(а):
пардон, не заметил)
Ну да ладно, мой код все равно не нужен)
Ну да ладно, мой код все равно не нужен)
Спустя 13 часов, 18 минут, 22 секунды (10.03.2011 - 07:20) zvezda_t написал(а):
Цитата (m4a1fox @ 9.03.2011 - 13:49) |
zvezda_t У меня вопрос к Вам. А что Вы реализуете при помощи этого кода. Ну то есть какой есть результат, то что linker напечатал. |
Здравствуйте, m4a1fox.
Этот код для меня - пример: как задать статическую переменную класса и потом её использовать в любой части кода. Дело в том что у меня очень много функций, в которых используется одна и та же переменная(в моём случае массив), и мне бы не хотелось менять теперь все функции - добавляя в качестве параметра массив. А вот переменная класса - меня в данном случае спасает - так как её область видимости распространяется на любую ф-цию.
_____________
Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)