что означает эта строчка

vanderv

Старатель
Регистрация
30 Май 2009
Сообщения
270
Реакции
12
PHP:
 $new_width   = $use_x_ratio  ? $width  : floor($size[0] * $ratio);
понять не могу что за "?" и ":" подскажите плз... гугле не дал ответов
 
  • Заблокирован
  • #2
В принципе здесь все правильно, это от скрипта который уменьчшает картинку спомощью php и библиотеки GD
 
ага... тобеж в php это не используется? а что строчка значит?
просто хочу в этот скрипт вставить что если ширина или высота указывается 0, то не менять размер...
 
тренарный оператор ( поиск даст ответ )
строчка эквивалентна записи

PHP:
<?php
if ($use_x_ratio) 
{
     $new_width = $width;
} 
else 
{
     $new_width = floor($size[0] * $ratio;
}
?>
 
Что бы не создавать новую тему спрошу здесь
В одном из классов встретил такую строчку
PHP:
$this->v=array($this, 'name_method')

Что означает этот array($this, 'name_method')?
Где про это можно прочитать? (Гугл к сожалению ничего не дал пока)

Помогите пожалуйста, заранее благодарю.
 
я там смотрел там нету про array($this, 'name_method').

Я знаю что такое array, но я не сталкивался с такой записью
array($this, 'name_method'), при работе с классами.

Вот тут

Довольно внятно обьясняется что такое $this

It is necessary to refer to a class element using self ,
and refer to an object element using $this .

Но чем отличается эта запись array($this, 'name_method')
от $this->name_method ???
 
Но чем отличается эта запись array($this, 'name_method')
от $this->name_method ???
Мне кажется, ты немного запутался в понятиях.
PHP:
array($this, 'name_method')
- функция, которая создает массив. А что означает конструкция
PHP:
$this->name_method
? Ответь для себя на этот вопрос и думаю, все прояснится.
 
PHP:
array($this, 'name_method') // тупо массив где первый элемент ссылка на объект а второй  строка, в данном случае скорее всего являющаяся именем метода.

$this->name_method // это просто обращение к "свойству" или  просто данным класса


PHP:
$this->v = array($this, 'name_method')
здесь переменной "v" присваиваем массив 1 значение которого равно ссылке на текущий класс, а второе строке 'name_method', которая по всей видимости является именем метода ...


ну а потом скорее всего где-то в коде есть вызов типа

PHP:
$class_1 = new X;
$myClass = call_user_func_array( $class_1->v ,array((передаваемые параметры ));

// или даже внутри того же класса .. .что маловероятно
PHP:
$myClass = call_user_func_array( $this->v ,array((передаваемые параметры ));

т.е. вызвать метод класса и передать ему параметры ..
array($this, 'name_method') - в данном случае будет вызываться тот класс внутри которого создавался этот массив и его метод 'name_method'
 
Назад
Сверху