public double ToDouble() => Value.ToDouble();
/// <summary> /// Converts to double. /// </summary> /// <param name="variable">The variable.</param> /// <returns>The converted value.</returns> public static double floatval(PhpValue variable) => variable.ToDouble();
/// <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)); }
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); }