PHP - обнаружьте пробел между строками

new Thing(); явно указывает на то, что вы хотите, чтобы конструктор вызывался, тогда как new Thing; подразумевает, что вы не против, если конструктор не вызывается.

При использовании в структуре / классе с определяемым пользователем конструктором разницы нет. Если вызывается для тривиальной структуры / класса (например, struct Thing { int i; };), то new Thing; похож на malloc(sizeof(Thing));, тогда как new Thing(); похож на calloc(sizeof(Thing)); - он инициализируется нулем.

Гоча лежит между:

struct Thingy {
  ~Thingy(); // No-longer a trivial class
  virtual WaxOn();
  int i;
};

Поведение new Thingy; против new Thingy(); в этом случае изменилось между C ++ 98 и C ++ 2003. См. Объяснение Майкла Берра о том, как и почему.

32
задан Michael Myers 21 July 2009 в 21:38
поделиться

5 ответов

Используйте preg_match, как предложил Джош:

<?php

$foo = "Dave Smith";
$bar = "SamSpade";
$baz = "Dave\t\t\tSmith";

var_dump(preg_match('/\s/',$foo));
var_dump(preg_match('/\s/',$bar));
var_dump(preg_match('/\s/',$baz));

Выходы:

int(1)
int(0)
int(1)
79
ответ дан 27 November 2019 в 19:55
поделиться

Не сработает ли preg_match ("/ \ s /", $ string) ? Преимущество этого метода перед strpos состоит в том, что он обнаруживает любые пробелы, а не только пробелы.

8
ответ дан 27 November 2019 в 19:55
поделиться

Вы можете проверить только буквенно-цифровые символы, в которых пробелы не являются. Вы также можете использовать strpos для пробела.

if(strpos($string, " ") !== false)
{
   // error
}
8
ответ дан 27 November 2019 в 19:55
поделиться

http://no.php.net/strpos

<?php
if(strpos('Jane Doe', ' ') > 0)
    echo 'Including space';
else
    echo 'Without space';
?>
0
ответ дан 27 November 2019 в 19:55
поделиться
// returns no. of matches if $str has nothing but alphabets,digits and spaces.
function is_alnumspace($str){
  return preg_match('/^[a-z0-9 ]+$/i',$str);
}
0
ответ дан 27 November 2019 в 19:55
поделиться
Другие вопросы по тегам:

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