有人可以告诉我为什么我在以下代码中得到奇怪的结果?
<?php
class Bank
{
var $ID;
var $balance;
var $name;
function bank($name,$id,$balance=0)
{
$this->ID=$id;
$this->balance=$balance;
$this->name=$name;
}
function getBalance()
{
return $this->balance;
}
function setBalance($bal)
{
$this->balance=$bal;
}
function getId()
{
return $this->ID;
}
function setId($i)
{
$this->ID=$i;
}
)
$b= new bank(yaniv,027447002, 15000);
Run Code Online (Sandbox Code Playgroud)
现在,当我试图回应:
$b->ID
Run Code Online (Sandbox Code Playgroud)
而不是预期的027447002我得到一个奇怪的6180354,但如果我启动这样的对象:
$b=new bank(yaniv,'027447002',15000);
Run Code Online (Sandbox Code Playgroud)
(注意我引用了id属性)它工作正常.任何建议为什么会发生这种情况以及解决问题的正确方法是什么?
我有一个Unix时间戳,我需要从中获取单独的年,月,日,小时,分钟和秒.我在数学课上从来都不是很好,所以我想知道你们是否可以帮我一点:)
我必须自己做所有事情(没有time.h函数).语言是C.
当我设置一个RadioButtonList时,它会为它创建一个表格布局,我不想要这个...我该如何摆脱它?
它可能是重复但我搜索过,并没有设法在这里找到这样的问题.
是否有经验法则不应删除.pas,.dfm和.dpr文件?
虽然开/与有关项目文件,Unit1.pas,Form1上,Unit1.dpr等会自动在他们没有与我的凸出相同project-folder.As IDE中创建的工作,我不小心删除them.Will任何导致问题?
每次保存时,是否应该使用新名称保存同一个项目?像PfojDel.dpr
编辑然后保存为PfojDel1.dpr编辑然后保存为PfojDel2.dpr等
请帮助
感谢致敬
沃什
例如,假设我想执行代码
value += 5
Run Code Online (Sandbox Code Playgroud)
在我自己的命名空间内(所以结果基本上是mydict['value'] += 5).有一个函数exec(),但我必须在那里传递一个字符串:
exec('value += 5', mydict)
Run Code Online (Sandbox Code Playgroud)
并且将语句作为字符串传递似乎很奇怪(例如,它没有这样的颜色).可以这样做:
def block():
value += 5
???(block, mydict)
Run Code Online (Sandbox Code Playgroud)
?最后一行的明显候选人是exec(block.__code__, mydict),但没有运气:它提出UnboundLocalError了value.我相信它基本上执行block(),而不是块内的代码,所以分配并不容易 - 这是正确的吗?
当然,另一种可能的解决方案是拆卸block.__code__......
仅供参考,因为这个帖子,我得到了这个问题.此外,这就是为什么有些人(我未定)要求新语法
using mydict:
value += 5
Run Code Online (Sandbox Code Playgroud)
注意这不会引发错误,但也不会改变mydict:
def block(value = 0):
value += 5
block(**mydict)
Run Code Online (Sandbox Code Playgroud) 我在看这个 问题.基本上具有前导零使得数字被解释为八进制.我用多种语言多次遇到这个问题.
为什么语言没有明确要求您使用函数调用或类型(强类型语言)指定八进制,如:
oct variable = 2;
Run Code Online (Sandbox Code Playgroud)
我能理解为什么十六进制(0x0234)具有这种格式.十六进制非常有用.数据库中的整数永远不会有x.
但八进制数字0123看起来像是整数并且很难处理.我从未使用八进制任何东西.
任何人都可以解释这种用法背后的理由吗?这只是一点历史遗迹吗?
我有一个关于窗口样式十六进制的问题。
据http://support.microsoft.com/kb/111011/en-us,0x16CF0000包含窗口样式WS_VISIBLE,WS_CLIPSIBLINGS,WS_CLIPCHILDREN,WS_CAPTION,WS_SYSMENU,WS_THICKFRAME,WS_MINIMIZEBOX,和WS_MAXIMIZEBOX的。
如何检查窗口样式是否存在于窗口样式的组合中?例如,我想检查WS_BORDER(0x00800000)样式是否存在于0x16CF0000中。
我需要一个响应内存压力的缓存,就像一个内置的ASP.NET.我没有使用网站,但是,我正在构建一个Windows服务.
有什么建议?(代码,技术,产品,我不在乎,只要它在内存中)
我想测试我RewriteRule的效果,而不必经历设置vhost和RewriteLog在浏览器中抛出URL(或者curl它们)的所有麻烦.
但我不只是想测试正则表达式.我希望我的URL实际上通过Apache的mod_rewrite堆栈,我希望看到它的响应.
如果我能够了解哪些规则对URL起作用,哪个顺序以及中期结果是什么,那就太棒了.(我想大部分都出现在重写日志中,但我想避免这种设置)
这有什么工具吗?
我很好,它无法处理RewriteConds,因为那些通常依赖于请求标题和诸如此类的东西.
编辑:
我不打算使用参数作为构建Erlang程序的通用方法 - 我仍在学习传统的设计原则.我也不想模仿OOP.我唯一的观点是让我的gen_server调用在服务器实例之间保持一致.这似乎更像是修复了一个破碎的抽象给我.我可以想象一个语言或OTP使得使用任何gen_server实例的api变得方便的世界,这是我想要生活的世界.
感谢Zed表明我的主要目标是可行的.
谁能想出一种在gen_servers上使用参数化模块的方法?在下面的示例中,假设test_child是具有一个参数的gen_server.当我尝试启动它时,我得到的是:
42> {test_child, "hello"}:start_link().
** exception exit: undef
in function test_child:init/1
called as test_child:init([])
in call from gen_server:init_it/6
in call from proc_lib:init_p_do_apply/3
Run Code Online (Sandbox Code Playgroud)
最后,我试图想出一种方法来使用gen_server的多个命名实例.据我所知,一旦你开始这样做,就不能再使用漂亮的API了,必须使用gen_server:call和gen_server:cast在你的实例中抛出消息.如果我可以告诉实例他们的名字,这个问题可以缓解.