Помогите с функцией

Статус
В этой теме нельзя размещать новые ответы.

ilya-bunker

Создатель
Регистрация
5 Май 2009
Сообщения
48
Реакции
6
...первый раз в жизни делаю функцию...
собственно подключаюсь к базе, всё как положено

PHP:
function getusertype() {
	if ($row['rang'] === 3){
	    return "admin"; }
	if ($row['rang'] === 2){
	    return "manager"; }
	if ($row['rang'] === 1){
	    return "user"; }
	else{
       	    return "Ошибка: тип клиента не определен";
	  		   }
}

в столбце rang могут быть 3 значения: admin, manager, user

echo $row['rang']; - показывает значения (1,2 или 3)
echo getusertype(); - выдает "Ошибка: тип клиента не определен" т.е. ничего не показывает

где ошибка? нужно через эхо получить и показать тип клиента
 
Переменная $row не определена в области видимости функции. Что бы работало надо вызывать так:
PHP:
echo getusertype($row)
а сама функция должна выглядеть так:
PHP:
function getusertype($row) { ... }
p.s. вопрос возник из-за того, что вы не изучили оф. мануал, этим вы нарушаете правила раздела....
 
спасибо, действительно что то я тупанул))) наверно из-за недосыпа, прошу прощение за потраченое на меня время))
 
можно еще сделать
global $row;
внутри функции.
 
можно еще сделать
global $row;
внутри функции.
Нафига? Эта функция будет вызываться в разных местах и из разных переменных...
кстати лучше не передавать массив в функцию, а сделать так.
PHP:
function getusertype($rang) { 
    if ($rang === 3){ 
        return "admin"; } 
    if ($rang === 2){ 
        return "manager"; } 
    if ($rang === 1){ 
        return "user"; } 
    else{
        return "Ошибка: тип клиента не определен"; 
    } 
}
// вызывать так
getusertype($row['rang']);
Кстати если клиент не определен наверное это гость :)
 
Нафига? Эта функция будет вызываться в разных местах и из разных переменных...
это один из способов... :)
вот пример использования...
PHP:
$foo = 1;
$bar = 2;
$res = $foo + $bar;
echo $res;  // 3
PHP:
$foo = 1;
$bar = 2;
function MyFunction($foo) {
	global $bar;
	$res = $foo + $bar;
	return $res;
}
echo MyFunction($foo); // 3

PHP:
//php5 oop
$foo = 1;
$bar = 5;


class MyClass {


	protected $var = TRUE;
	protected $bar = 0;
	private $res = 0;


	// конструкор
	public function __construct($bar) {
		$this->bar = $bar;
	} // __construct


	public function increment($foo){
		while ($this->var){
			if ($this->res < $this->bar)
				{ $this->res += $foo; }
			else
				{ break; }
			} //while
	} // increment


	public function res() {
		return $this->res; 
	} // res
} // class


$MyObj = new MyClass($bar);
$MyObj->increment($foo);
echo $MyObj->res(); //5
 
это один из способов... :)
вот пример использования...
Это коню понятно, но судя по тому, что функция определяет права доступа глупо было бы брать переменную через global, запутаешься потом... Да и не факт, что ранг не будет определен после функции.
PHP:
function getrang(){
    global $rang;
    //.....
}
//.......
$rang=1;
getrang();
Нафиг ведь пошлет...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху