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,因为它不能解决我们是否要更改从何处/如何获取字符串的问题。如果类需要字符串标题,它应该得到一个,它不关心它从何处来