100
<?php
$a = '';

if($a exist 'some text')
    echo 'text';
?>

假设我有上面的代码,如何编写语句“if($a exist 'some text')”?

4

8 回答 8

198

使用strpos函数: http: //php.net/manual/en/function.strpos.php

$haystack = "foo bar baz";
$needle   = "bar";

if( strpos( $haystack, $needle ) !== false) {
    echo "\"bar\" exists in the haystack variable";
}

在你的情况下:

if( strpos( $a, 'some text' ) !== false ) echo 'text';

请注意,我使用!==运算符(而不是!= false== true什至只是if( strpos( ... ) ) {)是因为PHP处理strpos.

从 PHP 8.0.0 开始,您现在可以使用str_contains

<?php
    if (str_contains('abc', '')) {
        echo "Checking the existence of the empty string will always 
        return true";
    }
于 2013-03-08T23:50:34.850 回答
18

空字符串是错误的,所以你可以写:

if ($a) {
    echo 'text';
}

尽管如果您询问该字符串中是否存在特定的子字符串,您可以使用它strpos()来执行此操作:

if (strpos($a, 'some text') !== false) {
    echo 'text';
}
于 2013-03-08T23:49:29.647 回答
7

http://php.net/manual/en/function.strpos.php 我认为如果字符串中存在“某些文本”,您会很奇怪吗?

if(strpos( $a , 'some text' ) !== false)
于 2013-03-08T23:50:03.213 回答
3

如果您需要知道字符串中是否存在某个单词,您可以使用它。由于您的问题尚不清楚您是否只想知道变量是否为字符串。其中 'word' 是您在字符串中搜索的单词。

if (strpos($a,'word') !== false) {
echo 'true';
}

或使用 is_string 方法。whichs 在给定变量上返回 true 或 false。

<?php
$a = '';
is_string($a);
?>
于 2013-03-08T23:54:09.453 回答
2

您可以使用strpos()stripos()检查字符串是否包含给定的针。它将返回找到它的位置,否则将返回 FALSE。

在 PHP 中使用运算符===或 `!== 将 FALSE 与 0 区分开来。

于 2013-03-08T23:52:04.870 回答
1

您可以使用== 比较运算符来检查变量是否等于文本:

if( $a == 'some text') {
    ...

您还可以使用strpos函数返回字符串的第一次出现:

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
    echo "The string '$findme' was not found in the string '$mystring'";
} else {
    echo "The string '$findme' was found in the string '$mystring'";
    echo " and exists at position $pos";
}

查看文档

于 2013-03-08T23:50:03.510 回答
0

你可以使用这个代码

$a = '';

if(!empty($a))
  echo 'text';
于 2013-03-08T23:52:52.077 回答
-1

是否意味着检查 $a 是否为非空字符串?所以它只包含任何文本?然后以下将起作用。

如果 $a 包含一个字符串,您可以使用以下内容:

if (!empty($a)) {      // Means: if not empty
    ...
}

如果您还需要确认 $a 实际上是一个字符串,请使用:

if (is_string($a) && !empty($a)) {      // Means: if $a is a string and not empty
    ...
}
于 2013-03-08T23:55:24.843 回答