Php 我上了第一节课,为什么不起作用?

Php 我上了第一节课,为什么不起作用?,php,class,oop,Php,Class,Oop,我试着使用我的第一个类,但它不起作用,我对编码是完全陌生的,所以我不知道它是如何工作的 我试着上网,改变一些事情 以下是php文件: new Products(); foreach ($products->getProduct() as $product) { echo $product . '<br>'; } 这是上课时间 <?php class Products { public function getProducts() {

我试着使用我的第一个类,但它不起作用,我对编码是完全陌生的,所以我不知道它是如何工作的

我试着上网,改变一些事情

以下是php文件:


new Products();

foreach ($products->getProduct() as $product) {
    echo $product . '<br>';
}


这是上课时间

<?php

class Products
{

    public function getProducts()
    {
        [
            'apple',
            'orange',
            'pitaya',
            'tomato',
            'banana',
        ];
    }

}
当我尝试我的代码时,结果是以下错误:

致命错误:未捕获错误:在索引中找不到类“Products”。php:3 堆栈跟踪:在第3行的index.php中抛出0{main}

以下是代码:

    include(__dir__.'/Products.php');
    $products = new Products();
    $allProducts = $products->getProduct();
    if($allProducts)
    foreach ($allProdcuts as $product) {
        echo $product . '<br>';
        }
     }

您需要在调用它之前包含类文件。该错误意味着找不到类产品。 出于测试目的,您可以执行如下操作:声明类,然后立即使用它:

<?php
    class Products {

    public function getProducts()
    {
        return [
            'apple',
            'orange',
            'pitaya',
            'tomato',
            'banana',
        ];
    }
    }

    $products = new Products();

    foreach ($products->getProduct() as $product) {
        echo $product . '<br>';
    }
祝你学习好运

@feeesssiee, 首先,为了方便起见,您需要在index.php所在的目录中创建一个名为Products.php的文件。 现在复制代码:

   class Products {

    public function getProducts()
    {
        return [
            'apple',
            'orange',
            'pitaya',
            'tomato',
            'banana',
        ];
    }

}
进入Products.php

在index.php中编写以下代码:

include_once('Products.php');
$products = new Products();

$all_products = $products->getProducts();

if(!empty($all_products)) {
  foreach ( $all_products as $product) {
     echo $product . '<br>';
   }
} 

还提到应该包括带有类的php文件,我想OP没有这样做。另外,getProducts函数必须返回值。它仍然给了我与以前相同的错误:致命错误:未捕获错误:在index.php中找不到类“Products”。php:3堆栈跟踪:0{main}在index.php的第行抛出3@feeeesssiiee您需要在调用类文件之前包含它。检查更新answer@feeeesssiiee文件在哪里?在同一个目录或其他地方?文件都在同一个地方做了所有的事情,但它仍然不工作的权利,我已经编辑,一个缺少的返回,上面写着将此返回给调用者。感谢您的awnser,但我无法让它工作。得到一个错误,上面写着:致命错误:未捕获错误:调用未定义的方法Products::getProduct in index.php:26堆栈跟踪:0{main}抛出在index.php的第26Humm行,函数名与第26行的getProducts不同当我对编码完全陌生时,我正在查找教程。关于这个有很多。如果你有时间,请点击这个链接。