我有一个抽象PHP超类,它包含需要知道其运行的子类的代码.
class Foo {
static function _get_class_name() {
return get_called_class();
//works in PHP 5.3.*, but not in PHP 5.2.*
}
static function other_code() {
//needs to know
echo self::_get_class_name();
}
}
class Bar extends Foo {
}
class FooBar extends Foo {
}
Bar::other_code(); // i need 'Bar'
FooBar::other_code(); // i need 'FooBar'
Run Code Online (Sandbox Code Playgroud)
如果我调用该函数get_called_class()
,这将有效- 但是,此代码将在PHP 5.2版中运行.*,因此该函数不可用.
那里有一些自定义的PHP实现get_called_class()
,但它们都依赖于debug_backtrack()
解析文件名和行号,并运行正则表达式(因为编码器不知道PHP 5.2有反射)来查找类名.这段代码需要能够用php运行,即.不仅来自.php文件.(它需要从php -a
shell或eval()
语句中工作.)
理想情况下,解决方案可以在不需要将任何代码添加到子类的情况下工作......我能看到的唯一可能的解决方案是将以下代码添加到每个子类中,这显然是一个恶心的黑客攻击:
class FooBar extends Foo {
static function _get_class_name() {
return …
Run Code Online (Sandbox Code Playgroud) 我有这张桌子
------------------
1 | 20,00 | A |
2 | 20,00 | A |
3 | 20,00 | A |
4 | 20,00 | A |
1 | 50,00 | B |
2 | 50,00 | B |
3 | 50,00 | B |
4 | 50,00 | B |
Run Code Online (Sandbox Code Playgroud)
我喜欢用group by来制作这个.
id | A | B |
----------------------
1 | 20,00 | 50,00 |
2 | 20,00 | 50,00 |
3 | 20,00 | 50,00 |
4 | 20,00 …
Run Code Online (Sandbox Code Playgroud) 我使用GitHub只读URL将一个repo克隆到我团队的登台服务器上.我对配置文件进行了一些更改.
我想将服务器上的repo clone更改为read-write,这样我就可以'git push'配置文件发生变化.
我该怎么做呢?
或者是否有一种更好的"最佳实践"方式来处理这种情况,而不是从登台服务器提交?
在我的应用程序中,MFMailComposeViewController工作正常,但创建MFMessageComposeViewController的新实例失败.
以下是两者的代码:
-( IBAction)sendSMS: (id)sender
{
MFMessageComposeViewController *picker = [[[MFMessageComposeViewController alloc] init] autorelease];
picker.messageComposeDelegate = self;
NSArray *toRecipients = [NSArray arrayWithObject: cell.currentTitle ];
picker.recipients = toRecipients;
[self presentModalViewController:picker animated:YES];
}
-( IBAction)sendEmail: (id)sender
{
MFMailComposeViewController *picker = [[[MFMailComposeViewController alloc] init] autorelease];
picker.mailComposeDelegate = self;
NSArray *toRecipients = [NSArray arrayWithObject: email.currentTitle ];
[picker setToRecipients:toRecipients];
[self presentModalViewController:picker animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
由于电子邮件视图控制器工作正常,所以一切都正确链接似乎很明显.是否有一些我错过的配置明智?
让我们说吧
string[] admins = "aron, mike, bob";
string[] users = "mike, katie, sarah";
Run Code Online (Sandbox Code Playgroud)
如何从管理员那里获取用户并删除任何人.
结果应该是"katie,sarah"; (迈克被删除)
有没有一个很好的Linq方式来做到这一点?
我试图在给定文件夹中搜索给定类型的所有文件(例如.pdf)并将它们复制到新文件夹.我需要做的是指定一个根文件夹,并在该文件夹及其所有子文件夹中搜索与给定类型(.pdf)匹配的任何文件.任何人都可以告诉我如何搜索根文件夹的子文件夹及其子文件夹等.这听起来像一个递归方法可以解决这个问题,但我无法正确实现一个?(顺便说一下,我正在ruby中实现这个程序).
下面的PHP代码以这种格式返回日期:
2010年7月27日下午7:36
我怎么能用大写字母返回日期?这就是我想要的;
2010年7月27日下午7:36
提前致谢,
约翰
PHP代码:
format('F j, Y &\nb\sp &\nb\sp g:i a')
Run Code Online (Sandbox Code Playgroud) 我们有来自的应用程序设置ApplicationSettingsBase
.当我们推送新版本的应用时,我们需要致电:
//
// Summary:
// Updates application settings to reflect a more recent installation of the
// application.
public virtual void Upgrade();
Run Code Online (Sandbox Code Playgroud)
(来自元数据)
现在有一些棘手的方法来确定您的设置是否需要升级,例如这篇文章在我看来只会升级您的设置一次.现在我可以将我的应用程序的当前版本存储在设置中,并在每次实例化设置时进行比较,如果它与当前版本不同,那么我可以升级.
我的问题是为什么不是Upgrade()
每次我实例化设置时调用?这样我知道我永远不会过时.
.net c# upgrade application-settings applicationsettingsbase
是否可以从Web服务器获取图像的大小(可能是其大小,以字节为单位),而不加载它?
Web服务器是否具有与文件大小相关的可访问属性(字段)?这样可以在不加载的情况下检查图像大小.
通常,当Web服务器的目录加载到浏览器中时,它会从服务器端告诉您每个文件的大小.作为ASP开发人员,我可以访问该数据吗?
我正在使用C#.Net 4
编辑:我充当客户端并从其他Web服务器请求此信息.
一如既往地感谢任何帮助.亚历克斯
我希望有一个正则表达式,确保字符串的开头包含'http://'和'/'以及结尾.
这是我提出的更长的版本,
if(!preg_match("/(^http:\/\//", $site_http))
{
$error = true;
echo '<error elementid="site_http" message="site_http - Your link appears to be invalid. Please confirm that your link contains http:// at the start."/>';
}
elseif (!preg_match("/\/$/", $site_http))
{
$error = true;
echo '<error elementid="site_http" message="site_http - Your link appears to be invalid. Please confirm that your link has ended with a /."/>';
}
Run Code Online (Sandbox Code Playgroud)
但我认为这两个表达式可以像下面这样放在一起,但它不会起作用,
if(!preg_match("/(^http:\/\/)&(\/$)/", $site_http))
{
$error = true;
echo '<error elementid="site_http" message="site_http - Your link appears to be invalid. Please confirm that …
Run Code Online (Sandbox Code Playgroud)