Php 在方法/函数中调用对象变量
如何调用方法中包含对象的变量?任何建议和帮助都将不胜感激 下面是我进一步解释的例子 这是我的类脚本,名为shirt.phpPhp 在方法/函数中调用对象变量,php,object,Php,Object,如何调用方法中包含对象的变量?任何建议和帮助都将不胜感激 下面是我进一步解释的例子 这是我的类脚本,名为shirt.php <?php class shirt { //some function and code here public getSize() { return $this->size; } } ?> 下面是我的脚本,它调用shirt.php,名为shirt.func.p
<?php
class shirt {
//some function and code here
public getSize() {
return $this->size;
}
}
?>
下面是我的脚本,它调用shirt.php,名为shirt.func.php
<?php
require_once 'shirt.php';
$shirt = new Shirt();
function getShirtSize() {
return $shirt->getSize();
}
?>
问题是我不能在函数中使用变量$shirt,但是如果我在函数之外使用它,它会工作得很好。我找到了一个解决方法,那就是创建一个返回该对象初始化的方法
这是我的方式:
<?php
require_once 'foo.php';
function init() {
return $shirt = new Shirt();
}
function getShirtSize() {
return init()->getSize();
}
?>
还有其他有效的方法吗?谢谢你的专业建议
require_once 'shirt.php';
$shirt = new shirt();
function getShirtSize($_shirt) {
return $_shirt->getSize();
}
getShirtSize($shirt) // pass the $shirt to the function
编辑:
或者(不那么)伟大的全球:
require_once 'shirt.php';
$shirt = new shirt();
function getShirtSize() {
global $shirt;
return $shirt->getSize();
}
getShirtSize();
方法和函数有自己的范围。他们只知道对象和标量,而您显式地向他们提供。因此,您必须将对象传递到函数中
require_once 'shirt.php';
$myCurrentShirt = new Shirt();
function getShirtSize($shirt) {
return $shirt->getSize();
}
我会的。有关函数用法的详细信息,请参见mor。您所做的事情很奇怪。如果您真的需要,可以在外部定义
$shirt
,然后使用全局$shirt
在您希望使用的任何函数中($shirt
)(或将其作为参数传递到函数getShirtSize($shirt)。我不明白为什么您不只是执行$shirt=new shirt();$shirt\u size=$shirt->getSize()
神奇的单词是global
!这就是函数的用途。@adeneo不。只是不。global
是邪恶的,没有任何global
可以解决的问题比通过参数注入更好。两个星号**的目的是什么?如果我想从其他脚本调用此方法,这将是专业的布莱姆。还有其他建议吗?@shadow-当然,请使用global