我需要在PHP中使用类构造函数调用其父级的父级(祖父级?)构造函数而不调用父构造函数.
// main class that everything inherits
class Grandpa
{
public function __construct()
{
}
}
class Papa extends Grandpa
{
public function __construct()
{
// call Grandpa's constructor
parent::__construct();
}
}
class Kiddo extends Papa
{
public function __construct()
{
// THIS IS WHERE I NEED TO CALL GRANDPA'S
// CONSTRUCTOR AND NOT PAPA'S
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这是一件很奇怪的事情,我试图找到一种味道并不难闻的手段但是,我很好奇是否有可能.
编辑
我想我应该发布所选答案的理由.原因是; 它是最优雅的解决方案,希望在保留所有值的同时调用"祖父母"的构造函数.它当然不是最好的方法,也不是OOP友好的,但这不是问题的问题.
对于以后遇到此问题的任何人 - 请找到另一种解决方案.我能够找到一种更好的方法,不会对类结构造成严重破坏.你也应该这样.
我需要一种一致且可靠的方法来确定访问我网站的计算机的位置(州/省,国家等),使用以下任何一种方法:
我我不是在寻找锁定的第三方的统计程序,如谷歌Analytics(分析).它已经在使用并且做了很多惊人的事情,但是我需要对信息进行代码级访问.
理想的解决方案应该允许我提供所需的任何信息(例如IP地址)并准确地获取尽可能多的关于访问的信息.获得原产国是最低要求,但是诸如州,纬度和经度,城市等的附加物将是好的.
澄清:我需要能够在PHP代码中定期使用这些信息.不只是在某个地方查看它.
我在PHP中发送标题时遇到了一个令人哭笑不得的问题.我花了大约45分钟在SO和其他网站上阅读,我无法想出我的问题的正当理由.
我需要向另一台服务器发送POST请求,我正在使用PHP header()函数来设置值.我有以下示例代码.
$server = 'http://fakedomain.com';
$server_path = '/';
$request = 'key=value&key2=value2';
header("POST $server_path HTTP/1.1" );
header("Host: $server\r\n" );
header("Content-type: application/x-www-form-urlencoded\r\n" );
header("Content-length: ".strlen($request)."\r\n" );
header("Connection: close\r\n\r\n" );
header($request);
Run Code Online (Sandbox Code Playgroud)
我尝试了各种选项,但每个选项都会在我的日志文件中导致相同的错误
malformed header from script. Bad header=POST / HTTP/1.1: php5.cgi
Run Code Online (Sandbox Code Playgroud)
我是一名经验丰富的PHP程序员,他不需要手动发送HTTP post请求.
我希望代码重定向浏览器,这就是我决定使用此方法的原因.
我做得对吗?
还有其他标准的方式,我只是不知道吗?