Postanowiłem przepisać jeden projekt napisany w C# do PHP.
Mam taką oto klasę:
public partial class UserPageBase { /// <summary> /// The _init user page. /// </summary> private bool _initUserPage = false; /// <summary> /// The _page. /// </summary> private DataRow _page = null; /// <summary> /// The _user flags. /// </summary> private UserFlags _userFlags = null; /// <summary> /// Gets or sets Page. /// </summary> public virtual DataRow Page { get { if (!this._initUserPage) { InitUserAndPage(); } return this._page; } set { this._page = value; this._initUserPage = value != null; // get user flags if (this._page != null) { this._userFlags = new UserFlags(this._page["UserFlags"]); } else { this._userFlags = null; } } } /// <summary> /// Helper function to see if the Page variable is populated /// </summary> /// <returns> /// The page is null. /// </returns> public bool PageIsNull() { return Page == null; } /// <summary> /// Helper function used for redundant "access" fields internally /// </summary> /// <param name="field"> /// </param> /// <returns> /// The access not null. /// </returns> private bool AccessNotNull(string field) { if (Page[field] == DBNull.Value) { return false; } return Convert.ToInt32(Page[field]) > 0; } /// <summary> /// Internal helper function used for redundant page variable access (bool) /// </summary> /// <param name="field"> /// </param> /// <returns> /// The page value as bool. /// </returns> private bool PageValueAsBool(string field) { if (Page != null && Page[field] != DBNull.Value) { return Convert.ToInt32(Page[field]) != 0; } return false; } /// <summary> /// Internal helper function used for redundant page variable access (int) /// </summary> /// <param name="field"> /// </param> /// <returns> /// The page value as int. /// </returns> private int PageValueAsInt(string field) { if (Page != null && Page[field] != DBNull.Value) { return Convert.ToInt32(Page[field]); } return 0; } /// <summary> /// Internal helper function used for redundant page variable access (string) /// </summary> /// <param name="field"> /// </param> /// <returns> /// The page value as string. /// </returns> private string PageValueAsString(string field) { if (Page != null && Page[field] != DBNull.Value) { return Page[field].ToString(); } } }
DataRow to wiersz tablicy.
Trochę czytałem (uczę się dopiero OOP). Wyczytałem, iż standardowe metody __get i __set działają trochę inaczej niż w przypadku C#.
W sumie to z grubsza chodzi mi o przykładowy kod, który byłby analogiczny do tego w C# powyżej (w php oczywiście).
Nie mam pomysłu jak zaimplementować ten wiersz tablicy.
Dziękuję.