Php 如何在类中使用函数中的变量

Php 如何在类中使用函数中的变量,php,Php,我在另一个文件中声明了一个函数。我需要从中获取一个变量,并在类中使用它。但由于某种原因,出现了一个错误 $myvar = myfunc($text);//an error here class func{ public $title = $myvar;//and here public function ($title){ ... } } 初始化对象时,可以在构造函数中注入函数的返回值 include_once

我在另一个文件中声明了一个函数。我需要从中获取一个变量,并在类中使用它。但由于某种原因,出现了一个错误

$myvar = myfunc($text);//an error here
    
class func{
    public $title = $myvar;//and here
        public function ($title){
            ...
        }
    }

初始化对象时,可以在构造函数中注入函数的返回值

include_once 'func.php';


class Myclass{

    public $title;

    function __construct( $title = null )
    {
        $this->title = $title;
    }
}

$obj = new Myclass( getVar() );

echo $obj->title;
func.php类

<?php

function getVar()
{
    return 'this_var';
}

?>

您的问题是如何在类中使用变量

class MyClass{
        
            public $title; //do not put a variable here, this is invalid
            ///you could set a default like this
            // e.g. public $title = "Jam";
            

            //this is a setter
            public function setTitle(string $title){
                $this->title = $title
            }

            public function getTitle() {
              return $this->title;
            }
      }
然后使用

$class = new MyClass();
$class->setTitle("jam sponge");
echo $class->getTitle();
$class = new MyClass("jam sponge");
echo $class->getTitle();
或 定义构造函数

  class MyClass{
            
            public $title;
            

            //this is a constructor
            public function __construct(string $title){
                $this->title = $title
            }

            public function getTitle() {
              return $this->title;
            }
      }
然后使用

$class = new MyClass();
$class->setTitle("jam sponge");
echo $class->getTitle();
$class = new MyClass("jam sponge");
echo $class->getTitle();
我更喜欢后者


对于这个
$myvar=myfunc($text)//此处的错误
与将var传递给类无关。您在该函数中还有一些其他问题,因此要么显示该代码,要么发布一个新的特定问题

您是否包含函数编写的文件?请用函数显示您的错误。出现的错误是什么?您不能在类内使用
$myvar
,它不在该范围内。在实例化class@Al-阿明,是的:
inc.php$myvar=myfunc($text);类函数{
公共函数($title)
?这也是无效语法。当然,如果需要标题,最好将其作为依赖项注入构造函数,而不是将其硬编码为外部类。如果我们想改变生成标题的方式,该怎么办?我认为使用setter在这里是合适的,但您的建议也很有用。thanksa setter很好,但有点困难对类的d编码调用是一个问题-这不是一个好的setter,因为它不能解决我们是否要更改从何处/如何获取字符串的问题。如果类需要字符串标题,它应该得到一个,它不关心它从何处来