gpt4 book ai didi

php - 为什么 PHP 允许从类外部创建类属性?

转载 作者:可可西里 更新时间:2023-11-01 00:42:23 25 4
gpt4 key购买 nike

来自 Java 背景,我觉得这很奇怪。请看一下这段代码 -

<?php  
class People {
private $name;
private $age;
public function set_info($name, $age) {
$this->name = $name;
$this->age = $age;
}

public function get_info() {
echo "Name : {$this->name}<br />";
echo "Age : {$this->age}<br />";
}
}

$p1 = new People();
$p1->set_info("Sam",22);
$p1->get_info();

$p1->ID = 12057;

echo "<pre>".print_r($p1,true)."</pre>";
?>

输出:

People Object
(
[name:People:private] => Sam
[age:People:private] => 22
[ID] => 12057
)

没有在 People 类中创建任何属性作为 ID,但我可以在类外使用 ID 赋值>p1.

在 Java 中,这会产生错误 -

cannot find symbol

这是 PHP 的一个特性吗?如果是那么它叫什么?它有什么好处?

最佳答案

由于 PHP 是一种动态类型的脚本语言,因此它允许使用动态属性。我推荐你这个 this article .

Languages like JavaScript and Python allow object instances to have dynamic properties. As it turns out, PHP does too. Looking at the official PHP documentation on objects and classes you might be lead to believe dynamic instance properties require custom __get and __set magic methods. They don't.

关于php - 为什么 PHP 允许从类外部创建类属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31498950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com