很多站长朋友们都不太清楚php类赋值吗,今天小编就来给大家整理php类赋值吗,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP 类里赋值一般用哪个函数,如何分辨 2、 php如何赋值 3、 php类怎么给静态变量赋值 4、 php类属性的赋值问题 5、 ThinkPHP遇到的类私有变量赋值问题 6、 PHP的类对象的赋值和clone的区别 PHP 类里赋值一般用哪个函数,如何分辨construct
通常构造方法被用来执行一些有用的初始化任务,如对成员属性在创建对象时赋予初始值。
构造方法的在类中的声明格式
function __constrct([参数列表]){
方法体//通常用来对成员属性进行初始化赋值
}
__get
这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用我们手工的去调用,因为我们也可以把这个方法做成私有的方法,是在直接获取私有属性的时候对象自动调用的。因为私有属性已经被封装上了,是不能直接获取值的(比如:“echo
$p1->name”这样直接获取是错误的),但是如果你在类里面加上了这个方法,在使用“echo
$p1->name”这样的语句直接获取值的时候就会自动调用__get($property_name)方法,将属性name传给参数$property_name,通过这个方法的内部执行,返回我们传入的私有属性的值。如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。
php如何赋值PHP赋值有多种情况:
直接赋值:赋值符号"=" ,赋值符号前面的是变量,后边的是赋的值;示例如下:
<?php
$a=10;
$b='baiduzhidao';
?
传递赋值:将一个表达式的值赋予一个变量(改变其中一个变量的值,不会影响到另一个变量的值);示例如下:
<?php
$num1=100;
$num2=$num1;//传值赋值后,$num2的值为:100
?
引用赋值:赋值符号"",当新的变量引用了原始变量的值后,如果改变新的变量将影响到原始变量。示例如下:
<?php
$a=3;
$b=5;
$a=$b; //把$b的地址赋值给$a, 这时$a的值也是5了。如果修改$b的值,那么$a的值也会发生变化。
?>
php类怎么给静态变量赋值case-1:给类中的静态变量赋值:
class PHPJungle{
private static $__instance = null;# 类中的私有成员:静态变量
public function __construct(){
}
public static function getInstance(){
if(self::$__instance instanceof self)
return self::$__instance; # 给静态变量赋值
return new self();
}
public function anyMethod(){
echo 'Hello world!','<hr>';
return;
}
}
$PJ = new PHPJungle();
$PJ->getInstance()->anyMethod();
case-2:给函数中的局部静态变量赋值:
function hello(){
static $total = 0;
echo $total,'<hr>';
$total++; # 给函数中的局部静态变量赋值
}
hello();# 0
hello();# 1
hello();# 2
php类属性的赋值问题cache_factory (这个是类名)::$cache_factory (这个是类内的私有静态属性,该属性的值是cache_factory类的实例)->cache_config = $cache_config; 其他不需要解释了吧
不过这个代码很烂,不建议把这个当作参考资料。帮你修改了一下,看这个吧
final class cache_factory {
private static $instance;
protected $cache_config = array();
protected $cache_list = array();
protected function __construct(array $configs) {
$this->cache_config = $configs;
}
public static function get_instance(array $cache_config = null) {
if (! self::$instance instanceof cache_factory) {
if (is_null($cache_config)) {
die('无效的初始化设置');
}
self::$instache = new cache_factory($cache_configs);
}
return self::$instance;
}
}
ThinkPHP遇到的类私有变量赋值问题Home\Common\Map.class.php文件
<?php
namespace Home\Common;
class Map {
static function getName() {
$map = array(
'0' => '张三',
'1' => '李四',
'2' => '王五',
'3' => '赵六'
);
return $map;
}
}
Home\Controller\IndexController.class.php文件
<?php
namespace Home\Controller;
use Think\Controller;
use Home\Common\Map as map;
class IndexController extends Controller {
private $sex = array(0,1);
private $name = map::getName(); // 写法1
// 测试 静态函数 类私有变量赋值
public function getName() {
$name = map::getName(); // 写法2
var_dump($name);
}
}
其中,写法1出错,显示:
写法2显示:
如果想私有变量赋值,可以构造函数赋值,即在__construct()里赋值:
$this->name = map::getName(); // 注意千万别写成$this->$name
类的变量成员叫做“属性”,或者叫“字段”、“特征”。属性声明是由关键字 public , protected 或者 private 开头,然后跟一个普通的变量声明来组成。 属性中的变量可以初始化,但是初始化的值必须是常数 ,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。
在类的成员方法里面,可以用 -> (对象运算符):$this -> property(其中 property 是该属性名)这种方式来访问 非静态属性 。 静态属性 则是用 :: (双冒号):self::$property 来访问。
当一个方法在类定义内部被调用时,有一个可用的伪变量 $this。$this 是一个到主叫对象的引用(通常是该方法所从属的对象,但如果是从第二个对象 静态 调用时也可能是另一个对象)。
具体请参考:
PHP的类对象的赋值和clone的区别PHP的类的赋值方式,有3种情况,一种是$a = new class()操作,创建类;一种是普通的对象赋值$a = $b; 一种取地址的赋值方式$a = $b。那么,这三种赋值,指向的内存是否是同一块呢?好吧,我们一起来做一个实验。
代码如下:
<?php
class mm {
public $name = 'Peter';
}
$a = new mm();
echo $a->name,"\n";//输出为Peter
$b = $a;
$c = $a;
关于php类赋值吗的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php类赋值吗 php中的类是什么的详细内容...