日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php静态属性获取$_get,php - PHP的静态属性的Magic __get getter - SO中文参考 - www.soinside.com...

發布時間:2023/12/31 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php静态属性获取$_get,php - PHP的静态属性的Magic __get getter - SO中文参考 - www.soinside.com... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

非常好mbrzuchalski。但它似乎只適用于公共變量。只需將您的開關更改為允許它訪問私有/受保護的:

switch($match[1]) {

case 'get': return self::${$property->name};

case 'set': return self::${$property->name} = $args[0];

}

而你可能想要更改if語句以限制可訪問的變量,否則它將無法使它們成為私有或受保護的目的。

if ($reflector->hasProperty($property) && in_array($property, array("allowedBVariable1", "allowedVariable2"))) {...)

因此,例如,我有一個類,旨在使用ssh pear模塊從遠程服務器中為我提取各種數據,我希望它根據要求查看的服務器對目標目錄做出某些假設。調整版mbrzuchalski的方法是完美的。

static public function __callStatic($method, $args) {

if (preg_match('/^([gs]et)([A-Z])(.*)$/', $method, $match)) {

$reflector = new \ReflectionClass(__CLASS__);

$property = strtolower($match[2]). $match[3];

if ($reflector->hasProperty($property)) {

if ($property == "server") {

$property = $reflector->getProperty($property);

switch($match[1]) {

case 'set':

self::${$property->name} = $args[0];

if ($args[0] == "server1") self::$targetDir = "/mnt/source/";

elseif($args[0] == "server2") self::$targetDir = "/source/";

else self::$targetDir = "/";

case 'get': return self::${$property->name};

}

} else throw new InvalidArgumentException("Property {$property} is not publicly accessible.");

} else throw new InvalidArgumentException("Property {$property} doesn't exist.");

}

}

總結

以上是生活随笔為你收集整理的php静态属性获取$_get,php - PHP的静态属性的Magic __get getter - SO中文参考 - www.soinside.com...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。