当前位置:首页 » 编程语言 » php调用类的属性

php调用类的属性

发布时间: 2023-01-15 03:39:55

php中,怎么在成员函数当中调用自己的成员属性除了静态调用之外还有别的方法吗

和静态数据成员一样,静态成员函数是类的一部分,而不是对象的一部分。如果要在类外调用公用的静态成员函数,要用类名和域运算符“∷”。
如 Box∷volume( ); 实际上也允许通过对象名调用静态成员函数,如 a.volume( ); 但这并不意味着此函数是属于对象a的,而只是用a的类型而已。 静态成员函数的作用是为了能处理静态数据成员。 可以说,静态成员函数与非静态成员函数的根本区别是:非静态成员函数有this指针,静态成员函数并不属于某一对象,它与任何对象都无关,静态成员函数没有this指针。
由此决定了静态成员函数不能访问本类中的非静态成员。 在C++程序中,静态成员函数主要用来访问静态数据成员,而不访问非静态成员。假如在一个静态成员函数中有以下语句: cout<<height<<endl; //若height已声明为static,则引用本类中的静态成员,合法 cout<<width<<endl; //若width是非静态数据成员,不合法。但是,并不是绝对不能引用本类中的非静态成员,只是不能进行默认访问,因为无法知道应该去找哪个对象。如果一定要引用本类的非静态成员,应该加对象名和成员运算符“.”。如 cout<<a.width<<endl; //引用本类对象a中的非静态成员

㈡ PHP中类的属性在类中调用只必须使用$this吗

在 sd()里使用变量a只能用$this->a吗?
是的

类中的echo $b;为什么会报错呢?
类中只能有成员变量和成员函数, 这不是变量也不是函数,这是一个执行语句,所以当然会报错。

㈢ php 中类的属性可以调用方法吗,怎么调用

你大概是想通过调用类中的某个方法,来动态改变类的属性的值吧。这样其实没有“属性调用方法”这种说法,你在类中单独写个方法,或者析构函数,自动调用类中的某个方法来给该类的属性赋值是可以的。

㈣ php 父类为什么能调用子类的属性

在集成的时候父类的属性会被保护。如果想要调用父类的属性必须使用父类对象super去调用,不然访问不了。你在子类中没有X的属性,所以在调用时使用this或super调用属性,这个时候不论是this还是super调用的都是父类的X属性。

㈤ PHP中类的属性在类中调用只必须使用$this吗

首先在类里不能直接输出,所以你的第5行的
echo
$b;不对;
在函数中$this就表示“这个”的意思,表明了这个属性或方法是当前方法的
我稍微改了一下你的例子:
?php
class
Test
{
public
$a=1;
public
$b=2;
function
sd()
{
echo
$this-
a;
}
}
$x=
new
Test();
$x->sd();
?>
要想输出要实例化类,也就是建一个对象来调用它,建议你可以看看php100的视频对于刚接触php的人来说很不错的

㈥ php中既然可以直接用类名调用类中的方法和属性,那还声明对象干嘛 这不是多此一举吗

你的写法是 PHP 4 格式,只是PHP在向下兼容罢了。。

类方法的静态调用问题。。你是想知道,即然可以静态调用,为什么还要实例化对象。

从使用的角度来说,区别在于。这是一个对象。还是一个类。主要是思路上的区别。从书写的角度来说,也是各有优缺点。。

正如你看到的,静态调用可以省去实例化,而且全局有效。但是用起来,更像是自定义函数。很难体现出 OOP 思想所在。

实例化之后的变量是一个对象,有明确的方法和属性。从编程思路上来说更清晰。

如果你只是以这么简单的代码来举例,感觉当然都一样。那么我举个例子。

$mysql = new db_mysql(); //实例化一个MYSQL对象
$rows = $mysql->table('test')->select(); //MYSQL 对象查询一个表数据。
$mysql->debug(); // MYSQL 打印错误信息
以上代码全是 MYSQL 对象在操作。。

如果用全静态化的方法写。就得这么写:
db_mysql::table('test'); //设置一个数据表,是谁在控制。
$rows = db_mysql::select(); //查询数据,谁在查?
db_mysq::debug(); //打印错误信息,错误信息是谁发出来的?
以上代码对象完全不清晰。只知道是 MYSQL 的一些功能。

你还觉得这么写方便么?而且代码长起来会更混乱。思路都已经有些混乱了。如果你试着封装这么一个类,你会觉得更麻烦。

㈦ PHP怎么调用其他类的方法

在Java的调用方法是import,而在PHP中没有import这个函数,一般PHP中调用其他类是用到require(),具体PHP调用其他类的方法如下:

1、首先应该先有一个文件名为tool.php的文件,在文件中声明一个类。

(7)php调用类的属性扩展阅读:

类是变量与作用于这些变量的函数的集合。使用下面的语法定义一个类:

<?php

class Cart { var $items; // 购物车中的物品

// 将 $num 个 $artnr 物品加入购物车

function add_item($artnr, $num) {

$this->items[$artnr] += $num;

} // 将 $num 个 $artnr 物品从购物车中取出

function remove_item($artnr, $num) {

if ($this->items[$artnr] > $num) {

$this->items[$artnr] -= $num; return true;

} elseif

($this->items[$artnr] == $num) {

unset($this->items[$artnr]); return true;

} else {

return false; }

}

} ?>

上面的例子定义了一个 Cart 类,这个类由购物车中的商品构成的数组和两个用于从购物车中添加和删除商品的函数组成。

㈧ PHP子类怎么调用父类的属性

父类的Pname

private
类型,也就是私有的只能父类自己的
函数调用
,子类以及外部是无法调用的。
如果这个变量只允许本类方法调用
应该用
private
方式调用,如果允许本类以及子类调用应该用
protected
保护)修饰,如果希望外部调用则应该用
public
公开修饰。这三个关键词对函数同样有效。
我把php.net关于这个的说明放在下面参考资料里面了,你可以仔细看下。

㈨ PHP子类怎么调用父类的属性

<?php
class Perpon {
private $Pid;
private $Pname;
private $Page;
private $Psex;
private $Pbirthday;

public function __construct($Pid,$Pname,$Page,$Psex,$Pbirthday)//PHP5中间的构造函数
{ $this->Pid=$Pid;
$this->Pname=$Pname;
$this->Page=$Page;
$this->Pbirthday=$Pbirthday;
echo "创建了一个对象"."<br>";
}
public function __set($name,$value) {
$this->$name=$value;
}
function show(){
echo ("我的姓名:$this->Pname,我的年龄:$this->Page,我的性别是:$this->Psex,我的生日是$this->Pbirthday <br>"); }

public function __get($name) { return $name; }
public function dining() { echo "$this->Pname 正在吃饭 <br>"; }
public function shuohua() { echo "$this->Pname喜欢说话 <br>"; }
public function gaosu() { echo "我的姓名叫做$this->Pname <br>"; }
public function IT() { echo $this->Pname."的工作是IT行业 <br>"; }
}

class Student extends Perpon {
public function __construct()//PHP5中间的构造函数
{ echo "子类的构造函数"; }

public function IT()//PHP5中间的构造函数
{ parent::IT();
echo $this->Pname."的工作是学生<br>";
}
}
$perpon=new Perpon('1','zhangsan','18','男','9月23'); $perpon->show(); $perpon->dining(); $perpon->shuohua(); $perpon->gaosu(); $perpon->IT();
echo "<hr>";
$student=new Student(); $student->IT();?>

调不到的原因是:
private $Pname;
记住:private只能自己调用,其他是不行的,这一点你自己记住即可。

㈩ PHP在类外如何调用类里的成员属性

在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。
在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错:class CA{private:int a; //非静态成员,创建类的实例时分配内存,类的不同实例对应不同的内存区域

热点内容
文件存储中的日期 发布:2025-07-15 05:57:00 浏览:671
python基础教程源码 发布:2025-07-15 05:56:18 浏览:247
php接受xml 发布:2025-07-15 05:51:04 浏览:927
机顶盒怎么看密码 发布:2025-07-15 05:46:48 浏览:921
电脑配置低怎么变得不卡 发布:2025-07-15 05:34:08 浏览:844
ios火影忍者手游脚本 发布:2025-07-15 05:31:34 浏览:82
iphone支付密码忘了怎么办 发布:2025-07-15 05:30:55 浏览:775
c语言打开网页 发布:2025-07-15 05:21:33 浏览:640
如何制作我的世界模组服务器 发布:2025-07-15 05:21:33 浏览:903
phparray加 发布:2025-07-15 05:20:41 浏览:782