A PHP Error was encountered

Severity: 8192

Message: Optional parameter $prod_file declared before required parameter $minify is implicitly treated as a required parameter

Filename: libraries/Carabiner.php

Line Number: 464

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 10
Function: __construct

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_database_driver::open($save_path, $name) should either be compatible with SessionHandlerInterface::open(string $path, string $name): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_database_driver.php

Line Number: 129

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_database_driver::close() should either be compatible with SessionHandlerInterface::close(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_database_driver.php

Line Number: 280

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_database_driver::read($session_id) should either be compatible with SessionHandlerInterface::read(string $id): string|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_database_driver.php

Line Number: 151

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_database_driver::write($session_id, $session_data) should either be compatible with SessionHandlerInterface::write(string $id, string $data): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_database_driver.php

Line Number: 208

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_database_driver::destroy($session_id) should either be compatible with SessionHandlerInterface::destroy(string $id): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_database_driver.php

Line Number: 297

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_database_driver::gc($maxlifetime) should either be compatible with SessionHandlerInterface::gc(int $max_lifetime): int|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_database_driver.php

Line Number: 335

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 282

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_cookie_params(): Session cookie parameters cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 294

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 304

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 314

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 315

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 316

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 317

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 375

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 110

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_start(): Session cannot be started after headers have already been sent

Filename: Session/Session.php

Line Number: 143

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 63
Function: library

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: stristr(): Passing null to parameter #1 ($haystack) of type string is deprecated

Filename: controllers/Main.php

Line Number: 229

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 229
Function: stristr

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: stristr(): Passing null to parameter #1 ($haystack) of type string is deprecated

Filename: controllers/Main.php

Line Number: 251

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 251
Function: stristr

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: stristr(): Passing null to parameter #1 ($haystack) of type string is deprecated

Filename: controllers/Main.php

Line Number: 269

Backtrace:

File: /home/paste/public_html/application/controllers/Main.php
Line: 269
Function: stristr

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: filter_var(): Passing null to parameter #3 ($options) of type array|int is deprecated

Filename: core/Input.php

Line Number: 572

Backtrace:

File: /home/paste/public_html/application/models/Pastes.php
Line: 522
Function: ip_address

File: /home/paste/public_html/application/controllers/Main.php
Line: 592
Function: getPaste

File: /home/paste/public_html/index.php
Line: 284
Function: require_once

Runtime invocation - Paste.ie - an Irish pastebin
From LordCrc, 9 Years ago, written in Delphi (Object Pascal).
Embed
  1. type
  2.   IWidget = interface(IInvokable)
  3.     function GetId: string;
  4.     function WidgetType: string;
  5.  
  6.     property Id: string read GetId;
  7.   end;
  8.  
  9.   TWidget = class(TInterfacedObject, IWidget)
  10.   private
  11.     FId: string;
  12.     function GetId: string;
  13.   public
  14.     constructor Create(const Id: string);
  15.     function WidgetType: string; virtual; abstract;
  16.  
  17.     property Id: string read GetId;
  18.   end;
  19.  
  20.   TRoundWidget = class(TWidget)
  21.   private
  22.     FRadius: double;
  23.   public
  24.     constructor Create(const Id: string; const Radius: double);
  25.     function WidgetType: string; override;
  26.  
  27.     property Radius: double read FRadius;
  28.   end;
  29.  
  30. { TWidget }
  31.  
  32. constructor TWidget.Create(const Id: string);
  33. begin
  34.   inherited Create;
  35.  
  36.   FId := Id;
  37. end;
  38.  
  39. function TWidget.GetId: string;
  40. begin
  41.   result := FId;
  42. end;
  43.  
  44. { TRoundWidget }
  45.  
  46. constructor TRoundWidget.Create(const Id: string; const Radius: double);
  47. begin
  48.   inherited Create(Id);
  49.  
  50.   FRadius := Radius;
  51. end;
  52.  
  53. function TRoundWidget.WidgetType: string;
  54. begin
  55.   result := 'Round';
  56. end;
  57.  
  58.  
  59. var
  60.   widget: TWidget;
  61.   iw: IWidget;
  62.   f: RIFunc<string>; // type RIFunc<R> = reference to function(const Instance): R;
  63.   r: RIFunc<double>;
  64.   id, wt: string;
  65.   rad: double;
  66. begin
  67.   widget := TRoundWidget.Create('42', 42);
  68.  
  69.   try
  70.     f := RIConstructor<TWidget>.PropGetter<string>('Id');
  71.     id := f(widget);
  72.     WriteLn(id);  // 42
  73.  
  74.     r := RIConstructor<TRoundWidget>.PropGetter<double>('Radius');
  75.     rad := r(widget);
  76.     WriteLn(rad); // 4.20000000000000E+0001
  77.  
  78.     f := RIConstructor.Func<string>(TypeInfo(TWidget), 'WidgetType');
  79.     wt := f(widget);
  80.     WriteLn(wt);  // Round
  81.  
  82.  
  83.     iw := TRoundWidget.Create('abc', 123);
  84.  
  85.     f := RIConstructor.PropGetter<string>(TypeInfo(IWidget), 'Id');
  86.     id := f(iw);  
  87.     WriteLn(id);  // abc
  88.    
  89.   finally
  90.     widget.Free;
  91.   end;
  92. end.