首页 > 解决方案 > 调用未定义的函数 str_contains() php

问题描述

我的代码通过 APACHE 在 localhost 上运行,但是当我托管一个包含所有相同文件和代码的网站时,我收到以下消息: 致命错误:调用/storage/ssd3/524/16325524/public_html/static/中的未定义函数 str_contains()错误显示的第55
PHP 代码中的header.php :

<?php
                            $menu = getAllData('meni');
                            global $korisnik;
                            for ($i = 0; $i < count($menu); $i++){
                                if(isset($_SESSION['korisnik'])){
                                    if(str_contains($menu[$i]->naziv, 'login') || str_contains($menu[$i]->naziv, 'reg')){
                                        continue;
                                    }
                                    echo  '<li><a href='.$menu[$i]->putanja.'>'.$menu[$i]->naziv.'</a></li>';
                                }
                                else {
                                    if (str_contains($menu[$i]->naziv, 'profile') || str_contains($menu[$i]->naziv, 'out')) {
                                        continue;
                                    }
                                    echo '<li><a href=' . $menu[$i]->putanja . '>' . $menu[$i]->naziv . '</a></li>';
                                }
                            }
                            ?>

标签: phpfunctioncompiler-errors

解决方案


str_contains()是在 PHP 8 中引入的,在较低版本中不受支持。

对于较低的 PHP 版本,您可以使用strpos()的解决方法:

if (strpos($haystack, $needle) !== false) {
  // haystack contains needle
}

推荐阅读