Объединить функцию для PHP?

Для этого есть 3 способа:

  1. Использование переменной среды CUDA_VISIBLE_DEVICES. установив переменную среды CUDA_VISIBLE_DEVICES="1", можно увидеть только устройство 1, а установив CUDA_VISIBLE_DEVICES="0,1", сделать устройства 0 и 1 видимыми. Вы можете сделать это в Python, имея строку os.environ["CUDA_VISIBLE_DEVICES"]="0,1" после импорта пакета os.

  2. Используя with tf.device('/gpu:2') и создать граф. Затем он будет использовать устройство GPU 2.

  3. Использование config = tf.ConfigProto(device_count = {'GPU': 1}), а затем sess = tf.Session(config=config). Это будет использовать устройство с графическим процессором 1.

130
задан hakre 22 April 2018 в 11:26
поделиться

5 ответов

В php 5.3 есть новый оператор, который делает это: ?:

// A
echo 'A' ?: 'B';

// B
echo '' ?: 'B';

// B
echo false ?: 'B';

// B
echo null ?: 'B';

Источник: http://www.php.net/ChangeLog-5.php # 5.3.0

190
ответ дан 24 November 2019 в 00:21
поделиться

Убедитесь, что вы точно определили, как эта функция должна работать с определенными типами. В PHP есть множество функций проверки типов или аналогичных функций, поэтому убедитесь, что вы знаете, как они работают. Это пример сравнения is_null () и empty ()

$testData = array(
  'FALSE'   => FALSE
  ,'0'      => 0
  ,'"0"'    => "0"  
  ,'NULL'   => NULL
  ,'array()'=> array()
  ,'new stdClass()' => new stdClass()
  ,'$undef' => $undef
);

foreach ( $testData as $key => $var )
{
  echo "$key " . (( empty( $var ) ) ? 'is' : 'is not') . " empty<br>";
  echo "$key " . (( is_null( $var ) ) ? 'is' : 'is not')  . " null<br>";
  echo '<hr>';
}

Как видите, empty () возвращает true для всех из них, а is_null () делает это только для двух из них.

6
ответ дан 24 November 2019 в 00:21
поделиться

В настоящее время я использую это, но мне интересно, нельзя ли его улучшить с помощью некоторых новых функций в PHP 5.

function coalesce() {
  $args = func_get_args();
  foreach ($args as $arg) {
    if (!empty($arg)) {
    return $arg;
    }
  }
  return $args[0];
}
0
ответ дан 24 November 2019 в 00:21
поделиться

Первое обращение по запросу "php coalesce" в Google.

function coalesce() {
  $args = func_get_args();
  foreach ($args as $arg) {
    if (!empty($arg)) {
      return $arg;
    }
  }
  return NULL;
}

http://drupial.com/content/php-coalesce

29
ответ дан 24 November 2019 в 00:21
поделиться

Стоит отметить, что из-за того, что PHP обрабатывает неитализированные переменные и индексы массивов, любые функции объединения имеют ограниченное применение. Я хотел бы иметь возможность сделать это:

$id = coalesce($_GET['id'], $_SESSION['id'], null);

Но в большинстве случаев это приведет к ошибке PHP с E_NOTICE. Единственный безопасный способ проверить существование переменной перед ее использованием - использовать ее непосредственно в empty () или isset (). Тернарный оператор, предложенный Кевином, - лучший вариант, если вы знаете, что все параметры в вашем объединении, как известно, инициализированы.

9
ответ дан 24 November 2019 в 00:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: