/// <summary> /// Gets or sets option. /// </summary> public static double GetSet(ref double option, int defaultValue, PhpValue newValue, IniAction action) { var oldValue = option; if (action == IniAction.Set) { option = (int)newValue.ToDouble(); } return(oldValue); }
public override bool SetParameter(StreamParameterOptions option, PhpValue value) { if (option == StreamParameterOptions.ReadTimeout) { int timeout = (int)(value.ToDouble() * 1000.0); Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, timeout); Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout); return(true); } return(base.SetParameter(option, value)); }
/// <summary> /// Sets variable's type. /// </summary> /// <param name="ctx">Current runtime context.</param> /// <param name="variable">The variable.</param> /// <param name="type">The string identifying a new type. See PHP manual for details.</param> /// <returns>Whether <paramref name="type"/> is valid type identifier.</returns> /// <exception cref="PhpException"><paramref name="type"/> has invalid value.</exception> public static bool settype(Context ctx, ref PhpValue variable, string type) { switch (type.ToLowerInvariant()) { case "bool": case "boolean": variable = PhpValue.Create(variable.ToBoolean()); return(true); case "int": case "integer": variable = PhpValue.Create(variable.ToLong()); return(true); case "float": case "double": variable = PhpValue.Create(variable.ToDouble()); return(true); case "string": if (variable.TypeCode != PhpTypeCode.MutableString) // already a string with possible binary data { variable = PhpValue.Create(variable.ToString(ctx)); } return(true); case "array": variable = PhpValue.Create(variable.ToArray()); return(true); case "object": variable = PhpValue.FromClass(variable.ToClass()); return(true); case "null": variable = PhpValue.Null; return(true); } PhpException.InvalidArgument(nameof(type), Resources.LibResources.invalid_type_name); return(false); }
public override bool SetParameter(StreamParameterOptions option, PhpValue value) { switch (option) { case StreamParameterOptions.ReadTimeout: // value is in seconds var timeout = (int)(value.ToDouble() * 1000.0); // milliseconds Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, timeout); Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout); return(true); case StreamParameterOptions.BlockingMode: // value is boolean indicating whether blocking should be enabled Socket.Blocking = (bool)value; return(true); } // return(base.SetParameter(option, value)); }
/// <summary> /// Sets variable's type. /// </summary> /// <param name="ctx">Current runtime context.</param> /// <param name="variable">The variable.</param> /// <param name="type">The string identifying a new type. See PHP manual for details.</param> /// <returns>Whether <paramref name="type"/> is valid type identifier.</returns> /// <exception cref="PhpException"><paramref name="type"/> has invalid value.</exception> public static bool settype(Context ctx, ref PhpValue variable, string type) { switch (type.ToLowerInvariant()) { case "bool": case "boolean": variable = PhpValue.Create(variable.ToBoolean()); return(true); case "int": case "integer": variable = PhpValue.Create(variable.ToLong()); return(true); case "float": case "double": variable = PhpValue.Create(variable.ToDouble()); return(true); case "string": variable = PhpValue.Create(variable.ToString(ctx)); return(true); case "array": variable = PhpValue.Create(variable.AsArray()); return(true); case "object": variable = PhpValue.FromClass(variable.ToClass()); return(true); case "null": variable = PhpValue.Null; return(true); } //PhpException.InvalidArgument("type", LibResources.GetString("invalid_type_name")); //return false; throw new ArgumentException(nameof(type)); }
/// <summary> /// Converts to double. /// </summary> /// <param name="variable">The variable.</param> /// <returns>The converted value.</returns> public static double floatval(PhpValue variable) => variable.ToDouble();