PHP if/开关由*

PHP if/开关由*,php,if-statement,concatenation,Php,If Statement,Concatenation,我想知道是否有人知道在if(或switch)语句中是否有将*(all)连接到字符串的方法。例如,如果您有一个名为/hello/there和/hello/whats up的URL。。。无论如何,您是否可以拥有以下内容: if ($url="/hello/" . *) { sayHello(); } else { sayGoodebye(); } 等等。。。我不认为这是正确的语法,但如果有人知道我在说什么,这将是一个很大的帮助 谢谢(:使用正则表达式: 所以应该是这样的: if (ereg("/

我想知道是否有人知道在if(或switch)语句中是否有将*(all)连接到字符串的方法。例如,如果您有一个名为/hello/there和/hello/whats up的URL。。。无论如何,您是否可以拥有以下内容:

if ($url="/hello/" . *) {
sayHello();
} else { sayGoodebye(); }
等等。。。我不认为这是正确的语法,但如果有人知道我在说什么,这将是一个很大的帮助

谢谢(:

使用正则表达式:

所以应该是这样的:

if (ereg("/hello/", $url)) {
sayHello();
} else { sayGoodebye(); }
尽管这将匹配其中任何以“/hello/”开头的字符串,但是如果您只想匹配以“/hello/”开头的字符串你必须修改表达式。关键是,如果你从未使用过正则表达式,那么花点时间在它上面是件好事。最终会有回报的,因为在某个时候你需要这项技能

编辑:我将保留我的原始代码作为参考,但请参阅phihag的注释,并使用preg_-match和preg_-match兼容表达式,而不是ereg和我使用的表达式

$match = "/hello/";
if (substr($url, 0, strlen($match)) === $match) {
   sayHello();
} else {
   sayGoodbye();
}

如果不必…,请不要使用正则表达式。您还可以检查$url字符串中$match的位置:

$match = "/hello/";

if (strpos($url, $match) === 0) {
   sayHello();
} else {
   sayGoodbye();
}

因此,如果我在匹配的前面和结尾添加了“^”,那么:/hello/*-正确吗?@Yohna P
ereg
已被取消,不应再使用。您应该使用
preg_match
@DaraÓCairbre是的,代码将是
if(preg_match('.^/hello/#'))…
。您也可以使用等效的模式
^/hello/*$
。phihag,谢谢您的注释。我已经编辑了我的原始帖子,指向您的贡献。